Java-Vererbung und Objektcasting

7

Ich bin ziemlich neu im Programmieren, ich habe eine Frage, bitte hilf mir. (Diese Frage ist Java-Frage, aber ich kann mich nicht an die Syntax erinnern, aber was ich hier schreibe, ist es meistens.)

%Vor%

Was spricht dann dann?

    
LAT 12.04.2010, 13:08
quelle

18 Antworten

12

p ist nur eine Variable, es ändert nicht den Typ des Objekts, das darin enthalten ist.

Sie können sich eine Tasse vorstellen: Sie können jede Flüssigkeit hineingeben, aber die Tasse wird die Art der Flüssigkeit nicht verändern.

%Vor%     
Hardcoded 12.04.2010, 13:59
quelle
9

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.

    
Aaron Digulla 12.04.2010 13:11
quelle
7

"Ich bin ein Student"?

Dies wird Dynamisches Binden

genannt     
mauris 12.04.2010 13:10
quelle
5

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%     
Martijn Courteaux 12.04.2010 13:13
quelle
4
%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.

    
codaddict 12.04.2010 13:16
quelle
2

Obwohl Ihre Referenz auf p als Person deklariert ist, ist p tatsächlich eine Instanz von Student . Daher wird p "sprechen", was auch immer ein Schüler spricht.

Es ist zulässig, auf eine Student -Instanz als " Person " zu verweisen, da "Student von Person ausgeht".

    
matt b 12.04.2010 13:11
quelle
2

P sagt Schüler. Weil das Student-Objekt in das Person-Objekt gegossen wird.

    
user2790467 18.09.2013 07:59
quelle
2

Über Frage, die vollständig zum Vererbungsmechanismus gehört, gleiche Eigenschaft, die von verschiedenen Entitäten verwendet wird.

%Vor%

}

%Vor%

}

    
Srinivas Repuri 16.09.2015 04:43
quelle
0

Ich würde sagen "i am a student" . Dies ist Grundpolymorphismus .

    
D.Shawley 12.04.2010 13:11
quelle
0

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.

    
Petar Minchev 12.04.2010 13:13
quelle
0

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.

    
Anchal Shrestha 14.07.2015 11:56
quelle
0

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.

    
Mukesh 03.09.2015 10:35
quelle
0

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.

    
Varun Bansal 30.11.2015 15:16
quelle
0

Person "P" ist hier eine Referenz, die mit dem Objekt des Schülers initialisiert wird. Wenn die Ausführung des Programms gestartet wird, wird zur Laufzeit die Klassenfunktion von Student aufgerufen.

    
rajvineet 27.01.2016 17:00
quelle
0

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.

    
Mandy Pandit 03.02.2016 06:44
quelle
0

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.

    
Kumar Abhishek 07.02.2016 05:40
quelle
0

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.

    
Yasith Saminthaka 07.03.2016 14:41
quelle
0

Hier wird p sprechen Ich bin ein Student. Dies ist ein Beispiel für eine dynamische Bindung.

    
Giridhar Kumar 07.08.2016 19:44
quelle

Tags und Links