1
在开发一些演示应用程序时,我遇到了类似下面的情况。Java在派生类中实现接口方法的方法
我等基本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的方法,尽管我的派生类实现了它?
谢谢!
但是,当您检查Oracle的页面说明界面,它说: “如果你的类声称实现一个接口,通过该接口定义的所有方法必须出现在源代码中的类将成功编译之前。” 在我的情况下,有一个类声明实现接口MyInterface,但myMethod的代码不一定在我的派生类的源代码中。 通过继承,我的派生类继承myMethod的定义,但它确实意味着,我的派生类在其源代码中定义了myMethod? –
@UgurKAYA正是。所有的父源代码都打包成子代码。 –