Heim Java javaLernprogramm Vererbung und Polymorphismus in Java: Verwendung von Superklassen und Unterklassen

Vererbung und Polymorphismus in Java: Verwendung von Superklassen und Unterklassen

Jan 06, 2025 am 10:31 AM

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");
    }
}
Nach dem Login kopieren

Unterklasse der Tiere

public class Domesticated extends Animal {
    public void friendly() {
        System.out.println("This animal is friendly.");
    }
}
Nach dem Login kopieren

Unterklasse der Domestizierten

public class Undomesticated extends Animal {
    public void notFriendly() {
        System.out.println("This animal is not friendly.");
    }
}
Nach dem Login kopieren

Unterklasse der Domestizierten

public class Cat extends Domesticated {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}
Nach dem Login kopieren

Unterklasse der Undomestizierten

public class Owl extends Undomesticated {
    @Override
    public void makeSound() {
        System.out.println("Hoots");
    }
}
Nach dem Login kopieren

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.
     }
}
Nach dem Login kopieren

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 „→“
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

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.
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

Mit anderen Worten, eine Unterklasse kann nur eine Oberklasse haben, … und sie darf nicht mehrere Eltern, Großeltern oder Urgroßeltern haben.
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1662
14
PHP-Tutorial
1262
29
C#-Tutorial
1235
24
Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Apr 19, 2025 pm 04:51 PM

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Apr 19, 2025 pm 11:30 PM

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Apr 19, 2025 pm 06:21 PM

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Apr 19, 2025 pm 11:45 PM

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Wie kann ich Java -Objekte sicher in Arrays umwandeln? Wie kann ich Java -Objekte sicher in Arrays umwandeln? Apr 19, 2025 pm 11:33 PM

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Apr 19, 2025 pm 11:42 PM

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Wie verwendet ich die Redis -Cache -Lösung, um die Anforderungen der Produktranking -Liste effizient zu erkennen? Wie verwendet ich die Redis -Cache -Lösung, um die Anforderungen der Produktranking -Liste effizient zu erkennen? Apr 19, 2025 pm 11:36 PM

Wie erkennt die Redis -Caching -Lösung die Anforderungen der Produktranking -Liste? Während des Entwicklungsprozesses müssen wir uns häufig mit den Anforderungen der Ranglisten befassen, z. B. das Anzeigen eines ...

E-Commerce-Plattform SKU und SPU-Datenbankdesign: Wie berücksichtigen Sie sowohl benutzerdefinierte Attribute als auch Attributloses Produkte? E-Commerce-Plattform SKU und SPU-Datenbankdesign: Wie berücksichtigen Sie sowohl benutzerdefinierte Attribute als auch Attributloses Produkte? Apr 19, 2025 pm 11:27 PM

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...

See all articles