在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/