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

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


然后fun执行由child给出的主体,但是与在函数重写中所做的相同的是什么呢?

最佳答案

区别在于,子类也将不是抽象的,必须实现所有继承的抽象方法。另外,具体实现不能调用super.method(),因为抽象类中没有实现。

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

关于java - 在抽象和函数重写上有区别吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11765844/

10-14 11:06