如果我们有一个名为
的抽象类public abstract class Person {
public abstract void Speak();
}
如果我们尝试在EnglishPerson Class中继承这个类,是否有必要实现抽象方法?为什么呢?
答案 0 :(得分:2)
抽象类强制执行实现所有抽象方法 第一级继承,肯定?
不一定。如果第一级继承是抽象类,则不强制从其层次结构中实现所有抽象方法。
基类(摘要):
public abstract class Person {
public abstract void speak();
}
子类(摘要):
public abstract class EnglishPerson extends Person {
}
Child类的Child(第一个具体类):
public class ConcreteEnglishPerson extends EnglishPerson {
public void speak(){
// your impl
}
}
如您所见,ConcreteEnglishPerson
类是具体的。所以,现在,你没有选择:你不能从未实现的层次结构中获得任何抽象方法。
答案 1 :(得分:0)
自从我发布回答后,原来的问题看起来有所改变,所以我会更新我的答案以便与之匹配..
如果继承类不是抽象类,则抽象类只需要实现所有成员。如果继承类是抽象的,则不必实现父类方法。