Unnötig zu erwähnen, dass diese Methode einfacher zu verstehen ist, da sie den Konstruktor der übergeordneten Klasse in der Unterklasse aufruft. Darüber hinaus besteht einer der größten Vorteile dieser Methode darin, dass durch strukturelle Vererbung eine Mehrfachvererbung erreicht werden kann:
Aber diese Methode hat auch einige Mängel:
Für diejenigen, die mit objektorientierten Methoden vertraut sind, werfen wir einen Blick auf diesen Teil des C#-Codes:
Was ist das Ergebnis? b ist natürlich eine Instanz von A:
Lassen Sie uns diesen Test jedoch mit dem oben genannten Javascript-Code durchführen, der strukturelle Vererbung verwendet:
Aber das Ergebnis war nicht das, was wir uns vorgestellt hatten:
Tatsächlich ist es leicht zu erklären: Die strukturelle Vererbung kopiert nur die Attribute der übergeordneten Klasse, indem sie die Konstruktormethode der übergeordneten Klasse aufruft, und führt nichts anderes aus. Daher wird diese Vererbungsmethode in vielen Materialien nicht als Vererbung bezeichnet.
Während Sie die Nachteile sehen, denken Sie auch an die Vorteile: Unterstützt Mehrfachvererbung.
Schauen wir uns die Vererbung in C# an und stellen fest, dass es zwei typischste Unterschiede bei dieser Vererbung gibt: C# unterstützt keine Mehrfachvererbung und die oben erwähnten Mängel der strukturellen Vererbung. So entstand eine neue Vererbungsmethode, die wir prototypische Vererbung nannten.
Wenn Sie den Namen sehen, können Sie ungefähr verstehen, dass die prototypische Vererbung die Eigenschaften des Prototyps nutzt, um eine Vererbung zu erreichen. Dies ist die beliebteste Vererbungsmethode in Javascript. Wenn Sie Prototypen nicht verstehen, folgen Sie bitte meinem anderen Artikel: „Mit Prototypen spielen – Prototypen“.
Schauen wir uns zuerst den Code an. Hier leihe ich mir einen Code aus „Die Rückkehr des Javascript-Königs“:
Test bestanden. Es zeigt, dass Point2D die Methoden der übergeordneten Klasse geerbt hat. Schauen wir uns noch einmal die Instanz an.
alert(p Instanz von Point);
Erfolg! Okay, analysieren wir die prototypische Vererbung:
Ich werde nicht näher auf die Vorteile der prototypischen Vererbung eingehen. Die Struktur ist einfach, leicht zu verstehen und kann instanziiert werden. Aber seine Mängel sind ebenso offensichtlich. Erinnern Sie sich noch an das Beispiel „Tier, Menschen, Mädchen“ in meinem letzten Artikel? Um dies zu erreichen, verwenden wir prototypische Vererbung:
Objektorientierte Sprachen wie Java und C# unterstützen ursprünglich keine Mehrfachvererbung, und Mehrfachvererbung gilt als inkonsistent mit objektorientierter
Okay, das ist alles für heute. Zusammenfassend lässt sich sagen, dass die Prototypenvererbung einige Probleme der Strukturvererbung löst und einige neue Probleme mit sich bringt. Im Allgemeinen ist die prototypische Vererbung die am weitesten verbreitete Vererbungsmethode und auch die wahre Art, Vererbung in der Javascript-Grammatik zu implementieren!