Vererbung und Ableitung
Wenn Sie diesen Namen zum ersten Mal hören, sollten Sie sich zunächst Gedanken über die Bedeutung dieser beiden Wörter machen. Lassen Sie uns zunächst über das Erbe sprechen. Dies ähnelt der Bedeutung des Erbes im wirklichen Leben. Beispielsweise erbt eine Person das Eigentum einer anderen Person und ein Sohn erbt das Erbe seines Vaters. In ähnlicher Weise verfügt beispielsweise in C++, wenn es zwei Klassen gibt, die neue Klasse über alle Attribute der ursprünglichen Klasse, was als Vererbung bezeichnet wird! Der Prozess des Generierens einer neuen Klasse aus einer ursprünglichen Klasse wird als Ableitung bezeichnet! Und wir nennen die ursprüngliche Klasse die übergeordnete Klasse oder Basisklasse , und die von der Basisklasse abgeleitete Klasse wird abgeleitete Klasse oder Unterklasse genannt. Jeder kann seine Beziehung anhand seines Namens erkennen.
Was sind also die Vorteile von Vererbung und Ableitung? Warum verfügt C++ über diesen Mechanismus?
1. Reflektieren Sie objektorientierte Programmierideen und drücken Sie die Beziehung zwischen verschiedenen Typen besser aus.
2. Zusätzlich zum Erben aller Informationen der Basisklasse kann die abgeleitete Klasse auch ihre eigenen unterschiedlichen und differenzierten Informationen hinzufügen. Genau wie das Prinzip der biologischen Evolution wird die abgeleitete Klasse auf der Grundlage aller Informationen der Basisklasse aktualisiert Basisklasse.
3. Die von der abgeleiteten Klasse an die Basisklasse geerbten Mitglieder sind automatisch und verborgen im Besitz, das heißt, wir müssen sie nicht neu definieren. Dies spart viel Code und verkörpert die Software-Engineering-Idee der Code-Wiederverwendung.
Schauen wir uns als Nächstes die Implementierung des eigentlichen Codes an und erfahren Sie, wie abgeleitete Klassen geerbt und implementiert werden:
/****************************************//Des: C++-Tutorial-Demo//Autor: Huang/ /Copyright:www.dotcpp.com//Datum:2018/6/20********************************* * *******/#include<iostream>usingnamespacestd;classClock{private:intH;intM;intS;public:intSetTime(inth,intm,ints){this->H=h;this->M=m ; this->S=s;return0;}intShowTime(){cout<<Now:<<H<<:<<M<<:<<S<<endl;return0;}};classAlarmClock:publicClock{private: intAH ;intAM;public:intSetAlarm(intAH,intAM){this->AH=AH;this->AM=AM;return0;}intShowAlarm(){cout<<AlarmTime:<<AH<<:<<AM<< endl ;return0;}};intmain(){AlarmClockA;A.SetTime(19,15,50);A.ShowTime();A.SetAlarm(5,30);A.ShowAlarm();return0;}
Der laufende Screenshot sieht wie folgt aus:
Bitte lesen und verstehen Sie, dass Clock die Basisklasse und AlarmClock die abgeleitete Klasse ist. Beachten Sie die Anweisung, die die abgeleitete Klasse definiert.
classAlarmClock:publicClock
Vererbung wird durch einen Doppelpunkt dargestellt , wobei public für öffentliche Vererbung, private Vererbung und geschützte Vererbung steht, auf die wir später näher eingehen werden. Im Code definieren wir Objekt A der abgeleiteten Klasse AlarmClock in der Hauptfunktion, und dann können wir die Methoden SetTime und ShowTime aus der Basisklasse aufrufen und sie genauso verwenden wie unsere eigenen. Gleichzeitig haben wir in der abgeleiteten Klasse unsere eigenen Methoden SetAlarm und ShowAlarm hinzugefügt und definiert. Bitte verstehen Sie den Code und experimentieren Sie am Computer.
Bisher haben wir die grundlegenden Konzepte der Vererbung und Ableitung eingeführt. Nachdem Sie dies verstanden haben, müssen Sie mit der Codierung auf einem Computer experimentieren, um zu verstehen, unter welchen Umständen zwei Klassen, die Gemeinsamkeiten haben und miteinander verwandt sind, diese Art von Beziehung haben können, und ihre Abwägung vornehmen verwenden.