In diesem Artikel wird erläutert, wie die Vererbung von Java eine „is-a“-Beziehung zwischen Superklassen und Unterklassen aufweist, die es Unterklassen ermöglicht, die Funktionalität von Superklassen zu erben und anzupassen. Durch die Verwendung von Polymorphismus können Unterklassen einzigartige Verhaltensweisen definieren, was die Wiederverwendung von Code und Flexibilität bei der objektorientierten Programmierung ermöglicht.
In Java ist die Beziehung zwischen Superklassen (übergeordnete Klasse) und Unterklassen (untergeordnete Klasse oder abgeleitete Klasse) bei der Vererbung eine is-a-Beziehung, die impliziert, dass die Unterklasse eine spezialisierte Version der Superklasse ist, die die Funktionalität erbt (Einschränkungen können möglich sein). angewendet werden) einer Klasse, von der es abgeleitet ist (CSU Global, n.d). Mit anderen Worten, wenn Klasse B von Klasse A erbt, dann ist Klasse B „ein“ Typ von Klasse A. Diese Beziehung ermöglicht es Klasse B, alle von Klasse A bereitgestellten Funktionalitäten zu nutzen (Einschränkungen können angewendet werden) und gleichzeitig ihre eigenen hinzuzufügen spezifische Funktionalitäten oder/und durch Überschreiben einiger oder aller Funktionalitäten der Klasse A. Die Fähigkeit der untergeordneten Klasse, Funktionalitäten zu überschreiben, ist eine Form von Polymorphismus.
„Die Wörterbuchdefinition von Polymorphismus bezieht sich auf ein Prinzip in der Biologie, bei dem ein Organismus oder eine Art viele verschiedene Formen oder Stadien haben kann.“ Dieses Prinzip lässt sich auch auf die objektorientierte Programmierung und Sprachen wie die Java-Sprache anwenden. Unterklassen einer Klasse können ihr eigenes einzigartiges Verhalten definieren und dennoch einige der gleichen Funktionen der übergeordneten Klasse teilen“ (The Java™ Tutorials, n.d.) Dies ist besonders nützlich, wenn es um mehrere Objekte aus verschiedenen Unterklassen geht, die einen gemeinsamen Oberklassentyp haben.
Zum Beispiel: Hunde, Katzen und Eulen sind Tiere:
Superklasse
public class Animal { public void makeSound() { System.out.println("Makes a Sound"); } }
Unterklasse der Tiere
public class Domesticated extends Animal { public void friendly() { System.out.println("This animal is friendly."); } }
Unterklasse der Domestizierten
public class Undomesticated extends Animal { public void notFriendly() { System.out.println("This animal is not friendly."); } }
Unterklasse der Domestizierten
public class Cat extends Domesticated { @Override public void makeSound() { System.out.println("Meow"); } }
Unterklasse der Undomestizierten
public class Owl extends Undomesticated { @Override public void makeSound() { System.out.println("Hoots"); } }
Hauptklasse zur Ausgabe des Ergebnisses
public class inheritanceExample { public static void main(String[] args) { Dog myDog = new Dog(); Cat myCat = new Cat(); Owl redOwl = new Owl(); System.out.println("MY Dog:"); myDog.makeSound(); // Outputs: Bark myDog.friendly(); // Outputs: This animal is friendly. System.out.println(); System.out.println("My Cat:"); myCat.makeSound(); // Outputs: Meow myCat.friendly(); // Outputs: This animal is friendly. System.out.println(); System.out.println("Red Owl:"); redOwl.makeSound(); // Outputs: Hoot redOwl.notFriendly(); // Outputs: This animal is not friendly. } }
Hinweis: Die makeSound()-Methoden in den Klassen Dog und Cat überschreiben die makeSound()-Methode in der Animal-Klasse.
Außerdem ist die Klasse „Hund“ eine Unterklasse der Klasse „Domestiziert“, die eine Unterklasse der Klasse „Tier“ ist.
Kind von „→“
In Java kann eine Unterklasse nur eine Oberklasse haben. Beispielsweise kann die Klasse „Hund“ keine Oberklasse „Domestiziert“ und eine Oberklasse „Tier“ haben. Folgendes ist nicht zulässig.
Mit anderen Worten, eine Unterklasse kann nur eine Oberklasse haben, … und sie darf nicht mehrere Eltern, Großeltern oder Urgroßeltern haben.
Zusammenfassend lässt sich sagen, dass die Vererbung von Java es Unterklassen ermöglicht, die Funktionalität von Oberklassen zu nutzen und zu erweitern, wodurch die „ist-ein“-Beziehung verkörpert und Polymorphismus erleichtert wird. Dies verbessert die Wiederverwendbarkeit, Flexibilität und Konsistenz des Codes, indem spezifische Verhaltensweisen in Unterklassen ermöglicht und gleichzeitig gemeinsame Merkmale in einer gemeinsamen Oberklasse beibehalten werden.
Referenzen:
CUS Global (ohne Datum). Modul 1: Arbeiten mit Vererbung [Interaktive Vorlesung]. An der Colorado State University Global, CSC372: Programming II, Informatikabteilung. Leinwand. Abgerufen am 8. Juni 2024 von https://csuglobal.instructure.com/courses/94948/pages/module-1-overview?module_item_id=4868813
Die Java™-Tutorials (ohne Datum). Erlernen der Java-Sprache: Schnittstellen und Vererbung. Orakel. Abgerufen am 8. Juni 2024 von https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html
Ursprünglich veröffentlicht bei Alex.omegapy auf Medium, veröffentlicht von Level UP Coding am 1. November 2024.
Das obige ist der detaillierte Inhalt vonVererbung und Polymorphismus in Java: Verwendung von Superklassen und Unterklassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!