Warum kann das nicht eine abstrakte Klasse erweitern eine Schnittstelle?
Ich Frage mich nur, warum ein abstract
Klasse nicht erweitern interface
.
Da können wir nicht instanziieren eines abstract
Klasse, kann ich nur die Erweiterung der Schnittstelle und dann überschreiben diese Methoden in den Klassen, die Erweiterung der abstrakten Klasse?
Beispielsweise
abstract class AbstractClass extends InterfaceA
{
}
interface InterfaceA
{
public void methodToBeImplemented();
}
class MyClass extends AbstractClass
{
@Override
public void methodToBeImplemented(){
//do something
}
}
Denn das ist die Art, wie die Sprache definiert ist.
InformationsquelleAutor Praveen Reddy Katta | 2014-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil Sie nicht
extends
eine Schnittstelle - Sieimplements
.Eine abstrakte Klasse ist immer noch Klasse, genau wie jeder andere. Nur die interfaces können
extends
anderen Schnittstellen.Pflege zu erklären?
Ich bin nicht der downvoter, aber warum bist du nicht konsequent? Sollte es nicht
implements
?Ja, es sollte. 🙂
Ich eigentlich gehört Popeye zu sprechen, wenn Sie schrieb: "Sie implementiert haben" - danke für das lachen!
InformationsquelleAutor Qix
Können Sie tatsächlich erweitern von interfaces in Java, aber es würde noch als eine Schnittstelle.
Dann können Sie mit dieser extended-Schnittstelle implementiert, die in Ihrem abstrakten Klasse.
Praveen, sein nur die Art, wie die Designer es entworfen hat. Es geht zurück auf die Philosophie von Java und die Art, wie Klassen und Schnittstellen sollen genutzt werden.
Können sagen, Sie haben folgende Klassen: Student, Professor, Mitarbeiter, Techniker. Und folgenden Schnittstellen: Demographie, Paydetails und Personaldetails.
Ideal, Klassen professor und Techniker können sowohl im erweiterten als auch von der Klasse Mitarbeiter und es macht Sinn. Doch stellen Sie sich erweiternde Klasse Techniker von Demographie oder Personaldetails. Es ist nicht sinnvoll. Wie seine erweiterte Klasse Himmel von Klasse blau. Nur Ursache, die Sie tun können, bedeutet nicht, dass Sie es tun sollten. Es macht aber mehr Sinn, um ein Klasse-Techniker erweitern von Mitarbeiter und implementieren von Schnittstellen wie Paydetails oder Demographie. Seine wie die Erweiterung sky aus der Natur, sondern der Implementierung von interface-blau (gibt es Funktionen blau).
Dies ist der grundlegende Grund, warum die Java-Entwickler waren gegen die mehrfache Vererbung (im Gegensatz zu cpp) und stattdessen die Verwendung von Schnittstellen. In Ihrer Frage, ist es egal, ob die Klasse Abstrakt ist oder nicht. Sie einfach cant erstrecken sich von einer Oberfläche verursachen, macht es keinen Sinn logisch.
Yep! .. Ich verstehe, dass nur die Schnittstelle erweitern zu können, ein anderes interface, aber meine Frage ist, warum sun/oracle nicht erlaubt, eine abstrakte Klasse zu erweitern die Benutzeroberfläche (interface Erweiterung einer Schnittstelle)?? ... Was wären die Folgen, wenn das eigentlich erlaubt?
Auch die Erweiterung mehrere interfaces erlaubt ist, nicht klar, nicht für Klassen.
Sie können zwar
implements
mehrere Schnittstellen 🙂InformationsquelleAutor Nick
in Schnittstelle erweitert die Schnittstelle .wenn wir ein interface in eine Klasse und es müssen implementiert in der Klasse.und eine andere Sache ist die abstrakte Klasse enthält eine abstrakte und nicht abstrakte Methode beim interface enthält nur abstrakte Methode
sind, die definieren, wo die Umsetzung von inteface(Unterklasse).
InformationsquelleAutor anjli