Während der Entwicklung einiger Demo-Anwendung, kam ich über eine Situation wie unten.Javas Art der Implementierung von Interface-Methoden in abgeleiteten Klasse
ich im Grunde drei Klassen unter anderem haben:
-One interface MyInterface
-One base class MyBaseClass
-One derived class MyDerivedClassExtendsMyBaseClass
In dieser Struktur MyBaseClass implementiert MyInterface. Java zwingt mich, die Methoden von MyInterface in der MyBaseClass zu implementieren.
Wenn MyDerivedClassExtendsMyBaseClass auch MyInterface implementiert, zwingt mich Java nicht, die Methoden von MyInterface zu implementieren. Es liegt an mir, MyInterface-Methoden zu überschreiben.
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!!
}
Gibt es dafür einen speziellen Zweck? Warum muss ich die Methode der Schnittstelle MyInterface nicht implementieren, obwohl meine abgeleitete Klasse sie implementiert?
Danke!
Aber wenn Sie Oracle Seite erklären Schnittstelle überprüfen, heißt es: "Wenn Ihre Klasse behauptet, eine Schnittstelle zu implementieren, müssen alle von dieser Schnittstelle definierten Methoden im Quellcode angezeigt werden, bevor die Klasse erfolgreich kompilieren wird." In meiner Situation gibt es eine Klasse behauptet, die Schnittstelle MyInterface zu implementieren, aber der Code von myMethod nicht unbedingt im Quellcode meiner abgeleiteten Klasse. Durch die Vererbung wird die Definition von myMethod in meiner abgeleiteten Klasse geerbt, aber bedeutet das wirklich, dass meine abgeleitete Klasse die Definition von myMethod im Quellcode hat? –
@UgurKAYA Genau. Der gesamte Quellcode des Quellcodes wurde in den Quellcode des untergeordneten Elements gepackt. –