抽象类强制执行在第一级继承上实现所有抽象方法吗?

时间:2016-12-13 20:09:39

标签: java c# oop

如果我们有一个名为

的抽象类
public abstract  class Person {

public  abstract void Speak();

     }

如果我们尝试在EnglishPerson Class中继承这个类,是否有必要实现抽象方法?为什么呢?

2 个答案:

答案 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)

自从我发布回答后,原来的问题看起来有所改变,所以我会更新我的答案以便与之匹配..

如果继承类不是抽象类,则抽象类只需要实现所有成员。如果继承类是抽象的,则不必实现父类方法。