遇到了有趣的继承/重写问题(取自here)。
Base和Derived类都是抽象的,并且
我不明白为什么Eclipse IDE会在Derived
中调用它代码段1:
public abstract class Girl {
abstract String getDescription();
}
abstract class GirlDecorator extends Girl {
abstract String getDescription(); // implements Girl.getDescription() - says Eclipse IDE
}
代码段2:
public abstract class Girl {
String description = "no particular";
String getDescription() {
return description;
}
}
abstract class GirlDecorator extends Girl {
abstract String getDescription(); // overrides Girl.getDescription() - says Eclipse IDE
}
答案 0 :(得分:0)
在Java中有两种类型的方法(非静态)
Virtual - Normal方法,必须在基类中实现,但可以通过继承覆盖。
Abstract - 未在基类中实现但在派生类中实现的方法。
因此包装它,虚拟方法不在派生类中实现,它们在基类中实现,并且可以由派生类重写。 抽象方法未在基类中实现,它们在派生类中实现。