在开发一些演示应用程序时,我遇到了类似下面的情况。
我基本上有3个班级:
-One interface MyInterface
-One base class MyBaseClass
-One derived class MyDerivedClassExtendsMyBaseClass
在这个结构中,MyBaseClass实现了MyInterface。 Java迫使我在MyBaseClass中实现MyInterface的方法。
当MyDerivedClassExtendsMyBaseClass也实现MyInterface时,Java不会强迫我实现MyInterface的方法。我可以覆盖MyInterface方法。
public interface MyInterface{
public void myMethod();
}
public class MyBase implements MyInterface{
//some members and methods here
@Override
public void myMethod(){
//You have to implement myMethod
}
}
public class MyDerivedClassExtendsMyBaseClass extends MyBase implements MyInterface{
//You don't have to implement myMethod() here!!
}
这是否有特殊目的?为什么我不必实现接口MyInterface的方法,尽管我的派生类实现了它?
谢谢!
答案 0 :(得分:1)
因为您的派生类扩展了LdapBackend.py
类,并且它已经被迫实现MyBase
的方法。由于Derived类是MyInterface
的子类,因此它可以从超类继承,因此不需要再次实现它们。总是有一个实现(现在从父母)。
如果你删除了extends,你将被迫在派生类中实现。