Vorwort
Java ist eine objektorientierte Sprache. Jeder, der Java gelernt hat, weiß, dass die Kapselung, Vererbung und Polymorphismus die drei Eigenschaften von Objektorientierungen sind. Wenn jeder gerade Erbschaft gelernt hat, hätten sie mehr oder weniger den Eindruck, dass die Erbschaft mir helfen kann, die Wiederverwendung der Klassen zu erkennen. Daher werden viele Entwickler natürlich die Erbschaft der Klasse verwenden, wenn sie einen Code wiederverwenden müssen, da das Buch geschrieben wird (dies ist, was der Lehrer lehrt). Es ist jedoch tatsächlich falsch, dies zu tun. Der langfristige Großwechsel der Erbschaft bringt hohe Wartungskosten in den Code.
Als ich Java zum ersten Mal erfuhr, habe ich nie von dem Begriff Kombination gehört, und der Lehrer hat es nie erklärt. Ich dachte immer, ich hätte einige Wissenspunkte verloren, aber das war es nicht. Der Begriff Kombination sollte vorerst als eine Denk Sache definiert werden. Ich glaube, dass die Leser damit in Kontakt gekommen sind, aber ich weiß nicht, dass er diesen Namen hat.
In der Tat besteht die sogenannte Kombination darin, eine neue Klasse zu erstellen, um eine Klasse zu nennen, die erstellt und debuggiert hat. Daher kann diese neue Klasse als Kombination bezeichnet werden
Zum Beispiel erstelle ich ein Volk
public class people {private string name; privates int Alter; public void setName (String name) {this.name = name; } public String getName () {return this.name; } public int getage () {return this.age; } public void setage (int age) {this.age = älter; }} Dann möchte ich diese Klasse jetzt verwenden. Ich kann dieser Klasse einige neue Funktionen hinzufügen. Zu diesem Zeitpunkt können wir eine neue Klasse erstellen und dann das Objekt der Menschen in dieser Klasse erstellen.
Zum Beispiel erstelle ich jetzt eine Klasse namens Student
Klassenstudent {people people = new people ();} Dann können Sie dieser Klasse einige Attribute hinzufügen, z. B. eine Identität als Schüler, die ich hier nicht diskutieren werde.
Schauen wir uns als nächstes den Vererbung an. Tatsächlich sind Vererbung und Kombination ähnlich. Schauen wir uns zunächst an, wie es vererbt wird.
In Java gibt es ein Schlüsselwort namens Expendent, das uns helfen kann, zu erben. Wir nennen die ererbte Klassenklassenklasse, Basisklasse, Superklasse und die Erben sind alle in Ordnung, und wir nennen die Erben -Unterklasse oder die abgeleitete Klasse usw.
Hier definieren wir eine Klasse
Der Schüler der öffentlichen Klasse erweitert die Menschen {// doomething} Auf diese Weise erbt die Klasse alle Mitgliedermethoden und Mitgliedsvariablen der übergeordneten Klasse, beachten Sie jedoch, dass Felder oder Methoden, die als private Erlaubnis deklariert sind, nicht erbelt werden.
Um dies zu beweisen, schreiben wir eine Methode in der Schülerklasse
public String re () {return this.name;}Hier meldet der Compiler einen Fehler "people.name ist nicht sichtbar". Von hier aus können wir sehen, dass die als privaten Felder oder Methoden deklarierten Methoden nicht geerbt werden können. Wenn Sie es erben möchten, können Sie privat in geschütztes Geschütz wechseln. Auf diese Weise können wir das Feld des Namens reibungslos erben.
Auf diese Weise initialisieren wir alle Felder bei Personen und fügen diesen Codeblock einfach zum Code hinzu.
{this.age = 10; this.name = "zhangsan";}Erklären Sie diesen Schüler als nächstes in der Hauptfunktion
Student student = new student (); System.out.println (student.getage ());
Jetzt waren wir überrascht, dass diese Schreibmethode machbar ist. Obwohl wir keine Felder und Methoden in der Unterklasse deklariert haben, können wir Getage () immer noch nennen; Und wir können 10 reibungslos ausdrucken
Dies liegt daran, dass wir keine Methode in der Unterklasse überlasten, sodass wir die übergeordnete Klasse Getage nennen, sodass wir leicht auf die von der Elternklasse privaten Felder zugreifen können.
Nachdem ich diese gelesen habe, glaube ich, dass jeder ein vorläufiges Verständnis der Erbschaft hat. Wie werden im Vererbungsmechanismus die Konstruktionsmethoden jeder Klasse aufgerufen? Die Antwort ist, sie nacheinander von der übergeordneten Klasse zur Kinderklasse zu rufen.
Während ich demonstriere, deklinge ich zuerst drei Klassen TEMP1, TEMP2 und TEMP3. Gleichzeitig erbt TEMP3 von TEMP2 und TEMP2 von TEMP1. Auf diese Weise geben wir eine gedruckte Erklärung in die Baumethoden jeder Klasse ein.
//Temp1system.out.println("i'm temp1 "); // temp2System.out.println (" Ich bin temp2 "); // temp3System.out.println (" Ich bin temp3 "); Aus Gründen der Bequemlichkeit habe ich dies hier geschrieben, aber jeder muss darauf achten, dass diese in die Baumethoden jeder Kategorie aufgenommen werden.
Wir erstellen ein TEMP3 -Objekt in der Hauptfunktion
public class mian {public static void main (String [] args) {temp3 temp3 = new temp3 (); }}Wir haben uns die Konsole angesehen und gedruckt
Ich bin temp1i'm temp2i'm temp3
Daraus können wir sehen, dass wir zuerst das Objekt von TEMP3 erstellen, das Extends -Schlüsselwort finden, dann der Vererbungskette folgen, TEMP2 finden und das Extends -Keyword finden, dann Temp1 finden, dann den Konstruktor von TEMP1 aufrufen und dann einen nach einem aufrufen.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, der Inhalt dieses Artikels wird Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen.