0

在 java 中,我们将 body 赋予子类中父类的抽象方法,然后通过子类对象调用该函数,例如:

//let the abstract  function be fun  then,     
child c= new child();    
c.fun(); 

然后fun执行由给出的主体,child但是这与在函数覆盖中所做的相同有什么新的?

4

2 回答 2

2

不同之处在于,不是抽象的子类必须实现所有继承的抽象方法。super.method()此外,由于抽象类中没有实现,因此无法调用具体实现。

至于为什么,或者更明确地说,为什么选择抽象超类而不是接口:通常只提供接口的某些方法的实现是有用的——例如代码共享——并且需要具体的子类来提供特定的实现界面的其他部分。

于 2012-08-01T19:09:36.170 回答
0

抽象意味着开发人员有(显式)实现该方法。覆盖意味着开发人员实现了一个已经实现的方法。这是根据语言的定义。

于 2012-08-01T19:07:53.290 回答