Heim > Java > javaLernprogramm > Hauptteil

Objektorientiert (Vererbung, Überschreibung, diese, super, abstrakte Klasse)

巴扎黑
Freigeben: 2017-06-26 09:59:57
Original
2022 Leute haben es durchsucht

Geerbt
Beim Definieren einer Klasse B wird festgestellt, dass die vorhandene Klasse A der zu definierenden Klasse B ähnlich ist und Klasse B ein Typ von Klasse A ist, Klasse B kann als Unterklasse der Klasse A von A definiert werden.

Wenn mehrere Klassen gemeinsamen Inhalt haben, kann der gemeinsame Inhalt nach oben extrahiert und in eine neue Klasse extrahiert werden. Diese neue Klasse bildet eine Beziehung mit mehreren Klassen, die als Vererbung bezeichnet wird.
Nachdem eine Unterklasse eine übergeordnete Klasse geerbt hat, besitzt sie automatisch alle vererbbaren Attribute und Funktionen der übergeordneten Klasse.

Hinweise
Java unterstützt nur Einzelvererbung, keine Mehrfachvererbung und mehrschichtige Vererbung.
Alle Klassen erben direkt oder indirekt die Object-Klasse. Die Object-Klasse hat keine übergeordnete Klasse.
Konstruktormethoden können nicht vererbt werden.

Methodenüberschreibungen.
Wenn Unterklassen erben Wenn es einer übergeordneten Klasse hinzugefügt wird, verfügt es automatisch über alle vererbbaren Eigenschaften und Funktionen der übergeordneten Klasse. Wenn die Unterklasse jedoch das Gefühl hat, dass die Methode der übergeordneten Klasse nicht leistungsfähig genug ist, kann sie die Methode der übergeordneten Klasse gemäß ihrer eigenen Logik neu schreiben
. Wird auch als Methodenkopieren und Methodenüberschreiben bezeichnet.
Hinweise
1. Sie können @Override verwenden, um zu überprüfen, ob die Methode überschrieben ist
2. Die Berechtigungen der Unterklassenmethode müssen größer oder gleich den Berechtigungen der übergeordneten Methode sein Klasse
3. Empfehlung und übergeordnete Klassenmethoden sind gleich

Der Erstellungsprozess von übergeordneten Klassenobjekten und untergeordneten Klassenobjekten
Übergeordnete Klassenobjekte werden vor der Unterklasse generiert Objekte
Jedes Mal, wenn ein Unterklassenobjekt erstellt wird, wird standardmäßig der leere Parameterkonstruktor der übergeordneten Klasse aufgerufen, um das übergeordnete Klassenobjekt (nicht das neue Objekt) zu erstellen.
Tatsächlich wird ein übergeordnetes Klassenobjekt erstellt im untergeordneten Klassenobjekt, weil die untergeordnete Klasse den Inhalt der übergeordneten Klasse haben möchte
Es ist notwendig, eine solche Leerzeichenunterstützung der übergeordneten Klasse zu haben
In der ersten Zeile jeder Konstruktormethode der Unterklasse gibt es eine Standardmäßig super() zum Aufrufen des leeren Parameterkonstruktors der übergeordneten Klasse
super(parameter) zum Aufrufen der Konstruktionsmethoden der übergeordneten Klasse

this und super
this: reference to das Objekt dieser Klasse
super: Verweis auf die übergeordnete Klasse im Objekt dieser Klasse

this und super
this Attributname Zugriff auf diese Klassenmitgliedsvariable
this. Methodenname (Parameter) Zugriff auf andere Methoden dieser Klasse
this (Parameter) Zugriff auf andere Konstruktoren dieser Klasse (beachten Sie, dass dies in der ersten Zeile des Konstruktors verwendet werden muss) (verstehen Sie es einfach)

super.property-Name für den Zugriff auf Member-Variablen der übergeordneten Klasse (nicht privat)
super.method-Name (Parameter) für den Zugriff auf Member-Methoden der übergeordneten Klasse (nicht privat)
super (Parameter) für den Zugriff auf die übergeordnete Klasse Konstruktor (nicht privat) (beachten Sie, dass er in der ersten Zeile des Konstruktors verwendet werden muss)

Hinweis:
this und super Beim Aufruf des Konstruktors kann es nicht verwendet werden gleichzeitig im selben Konstruktor, da beide in der ersten Zeile definiert werden müssen.
Wenn Sie einen Konstruktor aufrufen, müssen Sie sicherstellen, dass ein solcher Konstruktor vorhanden ist, bevor er aufgerufen werden kann. Wenn kein solcher Konstruktor vorhanden ist, kann er nicht aufgerufen werden.

Abstrakte Klasse
Abstrakte Methode: Eine Methode ohne Methodenkörper wird abstrakte Methode genannt
Abstrakte Klasse: Eine Klasse mit einer abstrakten Methode muss eine abstrakte Klasse sein
Abstrakte Verwendung von Klassen
1. Abstrakte Klassen können keine Objekte erstellen
2. Unterklassen definieren, um abstrakte Klassen zu erben
3. Unterklassen überschreiben übergeordnete Klassenmethoden
4. Unterklassenobjekte erstellen So rufen Sie Methoden auf
Details zu abstrakten Klassen:
1. Abstrakte Klassen können keine abstrakten Methoden haben
2. Abstrakte Klassen können konkrete Methoden haben
3. Abstrakte Klassen müssen eine übergeordnete Klasse sein
4. Unterklassen müssen alle abstrakten Methoden neu schreiben, andernfalls ist die Unterklasse auch eine abstrakte Klasse
5. Abstrakte Klassen haben Konstruktoren, und Unterklassen müssen den Konstruktor verwenden, um Mitgliedsvariablen Werte zuzuweisen
Die Bedeutung der Entstehung von Abstraktionen Klassen
Eine abstrakte Klasse definiert die grundlegendsten Eigenschaften und Verhaltensweisen von Klassendingen. Zwingt Unterklassen, ihre Funktionalität zu implementieren. Unterklassen müssen ihre abstrakten Methoden überschreiben
Definition der abstrakten Klasse
* Definition der abstrakten Klasse
* öffentliche abstrakte Klasse Klassenname {
*
*
* }

Das obige ist der detaillierte Inhalt vonObjektorientiert (Vererbung, Überschreibung, diese, super, abstrakte Klasse). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!