Java 抽象派生类中的抽象方法重写/实现抽象基类的抽象或具体方法。如何以及为什么?
遇到了有趣的继承/重写问题(摘自) 当基类和派生类都是抽象类时Java 抽象派生类中的抽象方法重写/实现抽象基类的抽象或具体方法。如何以及为什么?,java,inheritance,abstract-class,overriding,implements,Java,Inheritance,Abstract Class,Overriding,Implements,遇到了有趣的继承/重写问题(摘自) 当基类和派生类都是抽象类时 两者都有完全相同的抽象方法,或者 抽象基有具体的方法,派生基声明相同的方法抽象 我不明白为什么EclipseIDE在派生类中调用它 实现(它在派生中不提供代码/正文!) 重写(在派生中也不提供代码/正文!) 片段1: public abstract class Girl { abstract String getDescription(); } abstract class GirlDecorator extends
public abstract class Girl {
abstract String getDescription();
}
abstract class GirlDecorator extends Girl {
abstract String getDescription(); // implements Girl.getDescription() - says Eclipse IDE
}
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
}
片段2:
public abstract class Girl {
abstract String getDescription();
}
abstract class GirlDecorator extends Girl {
abstract String getDescription(); // implements Girl.getDescription() - says Eclipse IDE
}
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
}
在Java中有两种类型的方法(非静态)
抽象方法不是在基类中实现的,而是在派生类中实现的。您忘记了
@Override
注释。“Implements”是提供实现的“overrides”的特例。它可以用抽象方法重写。