Java在派生类中实现接口方法的方法

时间:2017-02-17 05:51:58

标签: java interface polymorphism

在开发一些演示应用程序时,我遇到了类似下面的情况。

我基本上有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的方法,尽管我的派生类实现了它?

谢谢!

1 个答案:

答案 0 :(得分:1)

因为您的派生类扩展了LdapBackend.py类,并且它已经被迫实现MyBase的方法。由于Derived类是MyInterface的子类,因此它可以从超类继承,因此不需要再次实现它们。总是有一个实现(现在从父母)。

如果你删除了extends,你将被迫在派生类中实现。