2012-04-07 12 views
1

Animal ist die Elternklasse der Cat-Klasse.Unterschied von zwei verschiedenen Zuordnungen der Unterklasse

public static void main (String[] args) 
{ 
Animal myCat1 = new Cat; //Allocation 1 
Cat myCat2 = new Cat; //Allocation 2 
} 

Was die diffrerence von zwei Zuteilung ist ?? Jedes wahr ist, ist es nicht?

+0

Es gibt einen Unterschied! Sie können Cat-Methoden für die Referenz myCat1 nicht aufrufen, da es ein Animal deklariert, sodass nur Animal-Methoden verfügbar sind. Für myCat2 können sowohl die Animal- als auch die Cat-Methode –

Antwort

4

Keines dieser gültig sind. Sie benötigen (). Abgesehen davon:

  • die ersten referes auf die Instanz von ihrer Ober
  • der zweite bezieht sich auf es von seiner Klasse

Sie auf jedes Objekt durch eine ihrer Oberklassen beziehen, bis zu Object. Dies ist Polymorphismus.

5
Animal myCat1 = new Cat(); 

Dies wird polymorphism, wo die Super-Klasse Referenz bezeichnet ein Unterklasse-Objekt enthalten kann.

Lesen Java-Tutorial: Polymorphism

+0

genannt werden. Ich lese die Seite, über die Sie gesprochen haben, sehr sorgfältig und erfassen Sie die Codes. Aber was ist die Beziehung der Codes zum Polymorphismus? Ich habe nicht verstanden, was der Polymorphismus ist? Am Ende der Seite heißt es: Die Java Virtual Machine (JVM) ruft die geeignete Methode für das Objekt auf, auf das in jeder Variablen Bezug genommen wird. Es ruft nicht die Methode auf, die durch den Typ der Variablen definiert ist. Dieses Verhalten wird als Aufruf virtueller Methoden bezeichnet und zeigt einen Aspekt der wichtigen Polymorphismen in Java. Ich habe nicht verstanden was es bedeutet ?? Können Sie bitte klarstellen?? – oiyio

1

Um Ihre Fragen zu beantworten: Es gibt keinen Unterschied - in beiden Fällen ordnet 'new Cat()' eine Instanz der Cat-Klasse zu. Beide sind wahr - myCat1 ist ein Tier (in der Tat eine Katze) und myCat2 ist eine Katze.

Verwandte Themen