p
ist sowohl ein Student
als auch ein Person
, aber wenn Sie eine Methode aufrufen (wie whoAreYou()
), versucht Java zuerst, sie in Student
und dann in Person
zu finden.
Ich denke ich weiß was du meinst ...
p würde sagen, er ist ein Student, weil Sie die Methode, wo die Person spricht, außer Kraft setzen. In Java sollte es so aussehen:
%Vor% Dies ist Java polymorphism
in Aktion. Die Methode speaks()
ist in base
class Person
definiert und ist overridden
in derived
class Student
.
In Java kann sich eine Basisklasse reference
auf ein abgeleitetes Klassenobjekt beziehen, und wenn eine überschriebene Methode aufgerufen wird, entscheidet die type
des Objekts, auf das sich die Referenz bezieht, über die Version der Methode ermordet werden.
P sagt Schüler. Weil das Student-Objekt in das Person-Objekt gegossen wird.
Über Frage, die vollständig zum Vererbungsmechanismus gehört, gleiche Eigenschaft, die von verschiedenen Entitäten verwendet wird.
%Vor%}
%Vor%}
Wenn die Methode nicht statisch ist, wird die Methode des Schülers aufgerufen, wie andere erwähnt haben. Seien Sie vorsichtig, wenn die Methode "static" spricht, wird die Methode der Person aufgerufen. Dies wird Verstecken genannt.
Dies ist ein Beispiel für eine einzelne Vererbung in java.In diesem Beispiel ist "Person" eine Basisklasse, wobei "Student" eine abgeleitete Klasse ist. Wenn nichts angegeben ist,
Person p = neuer Student ();
Objekt p (es scheint wie Objekt der Person) wird auf die Eigenschaften der Klasse Student zugreifen, die die Eigenschaften der eigenen Basisklasse Person überschrieben hat.
Hier zeigt es das Konzept des Polymorphismus wie Super Klasse kann die Referenz der Kind Klasse zusammen mit, dass es auch zeigt das Konzept der Vererbung wie Student ist eine Person bedeutet Klasse Student erweitert Person. Also hier ist Person eine Superklasse und Student ist eine Kindklasse. Gemäß dem Polymorphismus kann die Personenklasse (Superklasse) die Referenz der Studentenklasse (Unterklasse) enthalten.
P spricht: Ich bin Student.
Aber es wird nur gemeinsames Verhalten beider Klassen haben. jedes Verhalten, das der Schüler hat, aber nicht persönlich, P wird nicht in der Lage sein, auf dieses Verhalten zuzugreifen.
Hier ist P das Objekt der übergeordneten Klasse, das das untergeordnete Klassenobjekt enthält. Dies liegt daran, dass hier die Parent-Child-Beziehung (durch Vererbung) besteht, weil Sie die Parent-Klasse in die Student-Klasse erweitern. Somit kann die Elternklasse Objekt die Objekte aller ihrer untergeordneten Klassen enthalten. Jetzt kann P auf alle Eigenschaften seiner Kindklasse zugreifen.
In Java, wenn Student von Person ausgeht, können Sie entscheiden, welche Art von Verhalten Student von einer Person aufruft. Sie können den Schüler darauf beschränken, zu sagen, wenn es sich um eine Person handelt. Sie können sie als statische Methode implementieren und statische Methoden nicht außer Kraft setzen. Sie haben nur Schatten. Wenn Sie absichtlich die Instanzmethode verwenden möchten, implementieren Sie ihr spezifisches Verhalten.
Es gibt einen dynamischen Methodenversand / dynamische Bindung .
Person p = neuer Student ();
p ist eine Referenzvariable für den Typ der Person, die Student Objekt aufgerufen hat. Student ist Kindklasse und Person ist Elternklasse, die erweitert wurde. Zwei Klassen haben Methoden, die statisch oder nicht.
Hier wird p sprechen Ich bin ein Student. Dies ist ein Beispiel für eine dynamische Bindung.
Tags und Links java inheritance