Suche…
Bemerkungen
Hinweis: In Java ist die Vererbung auf mehreren Ebenen zulässig, nicht jedoch die Mehrfachvererbung. Weitere Informationen finden Sie unter http://beginnersbook.com/2013/04/oops-concepts/
Vererbung - Definition
Vererbung ist eines der Hauptkonzepte der objektorientierten Programmierung (Object Oriented Programming, OOP) . Durch Vererbung können wir ein Problem richtig modellieren und die Anzahl der Zeilen reduzieren, die wir schreiben müssen. Lassen Sie uns Vererbung anhand eines populären Beispiels sehen.
Stellen Sie sich vor, Sie müssen das Tierreich modellieren (natürlich vereinfachtes Tierreich. Biologen, entschuldigen Sie mich) mit OOP. Es gibt viele Tierarten, einige haben einzigartige Merkmale, andere haben dieselben Eigenschaften.
Es gibt Hauptfamilien von Tieren. Sagen wir, Mammals , Reptiles .
Dann haben wir Kinder dieser Familien. Zum Beispiel,
-
Cat,DogundLionsind Säugetiere. -
CobraundPythonsind Reptilien.
Jedes Tier hat einige Grundzüge wie eat , drink , move . Daher können wir sagen, dass wir ein Elternteil namens Animal von dem sie diese grundlegenden Merkmale erben können.
Dann teilen diese Familien auch einige Funktionen. Für ein Beispiel verwenden Reptilien Krabbeln , um sich zu bewegen. Jedes Säugetier erhält in frühen Lebensphasen fed milk .
Dann gibt es für jedes Tier einige Besonderheiten.
Überlegen Sie, ob wir diese Tierarten getrennt schaffen. Wir müssen bei jeder Tierart immer wieder denselben Code schreiben. Stattdessen verwenden wir Vererbung. Wir können das Tierreich wie folgt modellieren:
- Wir können übergeordnetes Objekt namens
Animal, das grundlegende Merkmale aller Tiere aufweist. -
MammalundReptile(natürlich auch die anderen Tierfamilien) nehmen mit ihren gemeinsamen Merkmalen Objekte auf, während sie die grundlegenden Merkmale vom übergeordneten ObjektAnimal. - Tierartobjekte:
CatundDogerben vonMammal,CobraundPythonerben vonReptileund so weiter.
In dieser Form können wir den Code, den wir schreiben, reduzieren, da wir nicht in jeder Tierart grundlegende Merkmale von Tieren definieren müssen, da wir sie im Animal definieren und dann erben können. Gleiches gilt für die Tierfamilien.
Vererbungsbeispiel - Betrachten Sie unten zwei Klassen
Lehrer Klasse:
class Teacher {
private String name;
private double salary;
private String subject;
public Teacher (String tname) {
name = tname;
}
public String getName() {
return name;
}
private double getSalary() {
return salary;
}
private String getSubject() {
return subject;
}
}
OfficeStaff-Klasse:
class OfficeStaff{
private String name;
private double salary;
private String dept;
public OfficeStaff (String sname) {
name = sname;
}
public String getName() {
return name;
}
private double getSalary() {
return salary;
}
private String getDept () {
return dept;
}
}
- Beide Klassen haben nur wenige gemeinsame Eigenschaften und Methoden. Also Wiederholung des Codes.
- Erstellen einer Klasse, die die üblichen Methoden und Eigenschaften enthält.
- Die Klassen Teacher und OfficeStaff können alle allgemeinen Eigenschaften und Methoden von der Employee-Klasse erben.
Mitarbeiterklasse:
class Employee{
private String name;
private double salary;
public Employee(String ename){
name=ename;
}
public String getName(){
return name;
}
private double getSalary(){
return salary;
}
}
- Hinzufügen einzelner Methoden und Eigenschaften Nachdem wir eine übergeordnete Klasse erstellt haben, die die Attribute definiert, die einem Satz von Objekten gemeinsam sind, können mit dieser eine beliebige Anzahl spezifischer Unterklassen erstellt werden
- Alle ähnlichen Klassen wie Engineer, Principal können als Unterklassen aus der Employee-Klasse generiert werden.
- Die übergeordnete Klasse wird als Superklasse bezeichnet und die geerbte Klasse ist die Unterklasse
- Eine Unterklasse ist die spezialisierte Version einer Oberklasse. Sie erbt alle von der Oberklasse definierten Instanzvariablen und -methoden und fügt ihre eigenen eindeutigen Elemente hinzu.
- Obwohl eine Unterklasse alle Mitglieder ihrer Oberklasse enthält, kann sie nicht auf die als privat deklarierten Mitglieder der Oberklasse zugreifen.
- Eine Referenzvariable einer Superklasse kann einer Referenz auf jede von dieser Superklasse abgeleitete Unterklasse zugewiesen werden, z. B. Employee emp = new Teacher ();