2017-08-02 5 views
-1

whats ist dies in einem einzigen Wort aufgerufen werden?Erstellen Sie ein Objekt einer geerbten Klasse

public class person 
{ 
} 
public class person1 : person 
{ 
} 
public class person2 : person 
{ 
} 

Ich habe irgendwo diesen Code gelesen, dass ein neues Objekt einer anderen vererbten Klasse zu schaffen, sondern was diese in einem einzigen Wort

person p=new person2(); 
person p1=new person1(); 
+11

Das wird nicht kompilieren. Also würde ich es in einem einzigen Wort als "Fehler" bezeichnen. – itsme86

+0

nein, es wirft keinen Fehler, weil ich ein Objekt der geerbten Klasse erstellt habe und die Basisklasse der Klassen gleich sind – Nischal

+3

Wenn Sie 'Person p1 = new Person2();' dann würde es kompilieren. Aber du kannst nicht 'Person1 p1 = new Person2();' wie du hast. Wenn Sie also keinen Fehler erhalten, zeigen Sie Ihren tatsächlichen Code nicht an. – itsme86

Antwort

8

Ich glaube, das Wort, das Sie sind aufgerufen werden Suche nach ist Polymorphismus. Aber Ihr Beispiel irrt:

Es wäre Polymorphismus, wenn Sie sagt dazu:

person myPerson = new person1(); oder person myPerson = new person2();

Sie können jedoch nicht zwei Klassen mit dem gleichen Basisklasse wie du in deinem Beispiel.

person2 myPerson = new person1();

Während es wahr, dass sie beide die gleiche Basisklasse erben, sind sie nicht gleich. Um es in echten Wörtern auszudrücken:

Angenommen, Sie hatten eine Klasse Vehicle. Dann hatten Sie zwei andere Klassen, Car und Bus. Können Sie sagen, dass Bus ein Vehicle ist? Ja, sicher. Aber Sie kann nicht sagen, dass Bus ist ein Car.

+1

Ein 'Bus' ist ein' Auto' ... Ich sagte es: -O – GibralterTop

+1

Das ist aber kein Beispiel für Polymorphie. – Servy

+0

Ist der Punkt, dass es wirklich Vererbung ist, weil sie die Basisklasse nicht überschreiben? Ich sehe den Punkt, aber ich bin der Ansicht, dass er, da er von "person1" und "person2" redet, "verschiedene" Implementierungen von "person" meint. Es ist schwer zu sagen, weil es unmöglich ist, es in seiner ursprünglichen Form zu kompilieren. – Ares

Verwandte Themen