2016-12-13 51 views
-2

如果我们有一个叫做抽象类是否强制执行第一级继承上的所有抽象方法,当然?

public abstract class Person { 

public abstract void Speak(); 

    } 

抽象类是实现抽象方法,如果我们试图继承这个类中EnglishPerson类有必要吗?为什么?

+4

当你尝试时发生了什么? – Servy

+0

@abhiarora不,我只是试图扩展这个类,它不编译,问题是为什么会发生这种情况。从知道更多的细节知道像你这样的人,谢谢 – alieladly

+0

@Servy我有一个编译错误.. – alieladly

回答

1

抽象类是否强制实现第一级继承上的所有抽象方法,当然?

不一定。如果第一级继承是抽象类,那么不强制从其层次结构实现所有抽象方法。

基类(abstract):

public abstract class Person { 
    public abstract void speak(); 
} 

儿童类(abstract):

public class ConcreteEnglishPerson extends EnglishPerson { 
    public void speak(){ 
     // your impl 
    } 
} 

正如你:

public abstract class EnglishPerson extends Person {   
} 

儿童类(第一罐混凝土类)的儿童看,ConcreteEnglishPerson类是具体的。所以,现在,你没有选择:你不能从没有实现的层次结构中获取任何抽象方法。

-1

貌似我开始发布答案原来的问题已经改变,所以我会更新我的答案来匹配它..

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

+0

原帖发生了一些变化,导致我的回答不正确。我改变了我的答案以匹配最新更新的问题。谁能给我负面点,请把它扭转..? – Curtis