国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Java JavaErste Schritte Java objektorientiert – ausführliche Einführung in den Polymorphismus

Java objektorientiert – ausführliche Einführung in den Polymorphismus

Nov 30, 2019 pm 02:21 PM
java Polymorph Objektorientiert

Java objektorientiert – ausführliche Einführung in den Polymorphismus

1. überblick

Polymorphismus ist nach Kapselung und Vererbung das dritte Hauptmerkmal der Objektorientierung.

Im Leben laufen beispielsweise Laufbewegungen, K?tzchen, Welpen und Elefanten unterschiedlich. Ein weiteres Beispiel ist die Flugbewegung. Auch Insekten, V?gel und Flugzeuge fliegen unterschiedlich. Es ist ersichtlich, dass sich das gleiche Verhalten durch unterschiedliche Dinge in unterschiedlicher Form manifestieren kann. Polymorphismus beschreibt diesen Zustand.

Polymorphismus:

bezieht sich auf dasselbe Verhalten mit mehreren unterschiedlichen Erscheinungsformen.

Pr?misse [Wichtige Punkte]

1. übernehmen oder implementieren [w?hlen Sie einen]

2. Schreiben Sie die Methode neu , bedeutungslos]

3. Die Referenz der übergeordneten Klasse verweist auf das Unterklassenobjekt [Formatausdruck]

Kostenlose Online-Lernvideoempfehlung: Java-Video

2. Polymorphe Manifestation

Das Format der polymorphen Manifestation:

父類類型 變量名 = new 子類對象; 
變量名.方法名();

Typ der übergeordneten Klasse: Bezieht sich auf den Typ der übergeordneten Klasse, der vom Unterklassenobjekt geerbt wird Implementierung Der übergeordnete Schnittstellentyp.

Der Code lautet wie folgt:

Fu f = new Zi(); 
f.method();

überprüfen Sie beim Aufruf einer Methode mit Polymorphismus zun?chst, ob die Methode in der übergeordneten Klasse If vorhanden ist Wenn nicht, tritt ein Kompilierungsfehler auf. Wenn dies der Fall ist, wird die überschriebene Methode der Unterklasse ausgeführt.

Der Code lautet wie folgt:

Definieren Sie die übergeordnete Klasse:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

Definieren Sie die Unterklasse:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

Testklasse definieren:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

3. Die Vorteile von Polymorphismus

Der eigentliche Entwicklungsprozess In der Methode wird der Typ der übergeordneten Klasse als formaler Parameter der Methode verwendet, um das Unterklassenobjekt an die Methode zu übergeben und die Methode aufzurufen, was die Skalierbarkeit und Bequemlichkeit des Polymorphismus besser widerspiegeln kann.

Der Code lautet wie folgt:

Definieren Sie die übergeordnete Klasse:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

Definieren Sie die Unterklasse:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

Definieren Sie die Testklasse:

public class Test {
    public static void main(String[] args) {
        // 多態(tài)形式,創(chuàng)建對象
        // Cat c = new Cat();
        // Dog d = new Dog();

        // 調(diào)用showCatEat showCatEat(c);
        // 調(diào)用showDogEat
        showDogEat(d);

        /*
        以上兩個(gè)方法, 均可以被showAnimalEat(Animal a)方法所替代而執(zhí)行效果一致
        */
        showAnimalEat(c);
        showAnimalEat(d);
    }

    public static void showCatEat(Cat c) {
        c.eat();
    }

    public static void showDogEat(Dog d) {
        d.eat();
    }

    public static void showAnimalEat(Animal a) {
        a.eat();
    }
}

Wenn die Eat-Methode ausgeführt wird, legt der Polymorphismus fest, dass die von der Unterklasse neu geschriebene Methode ausgeführt wird, sodass der Effekt natürlich mit den Methoden showCatEat und showDogEat übereinstimmt , sodass showAnimalEat die beiden oben genannten Methoden vollst?ndig ersetzen kann.

In Bezug auf die Skalierbarkeit müssen wir die showXxxEat-Methode nicht schreiben. Sie kann direkt mit showAnimalEat vervollst?ndigt werden.

Die Vorteile des Polymorphismus liegen also darin, dass er das Schreiben von Programmen erleichtert und eine gute Skalierbarkeit aufweist.

4. Referenztypkonvertierung

Die polymorphe Transformation ist in zwei Typen unterteilt: Aufw?rtstransformation und Abw?rtstransformation:

Upcasting

Upcasting: Polymorphismus selbst ist der Prozess des Upcastings eines Unterklassentyps in einen übergeordneten Klassentyp.

Wenn die Referenz der übergeordneten Klasse auf ein Unterklassenobjekt verweist, handelt es sich um eine Aufw?rtstransformation.

Verwenden Sie das Format:

父類類型 變量名 = new 子類類型(); 
如:Animal a = new Cat();

Downcast

Der Prozess der Abw?rtskonvertierung des übergeordneten Klassentyps in den Unterklassentyp. Dieser Prozess ist obligatorisch.

Ein Unterklassenobjekt, das nach oben transformiert wurde, kann das Format der erzwungenen Typkonvertierung verwenden, bei dem es sich um eine Abw?rtstransformation handelt.

Format verwenden:

子類類型 變量名 = (子類類型) 父類變量名; 
如 :Cat c =(Cat) a;

Transformationsdemonstration, der Code lautet wie folgt:

Klasse definieren:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

Definieren Testklasse:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

Abnormalit?t der Transformation

轉(zhuǎn)型的過程中,一不小心就會遇到這樣的問題,請看如下代碼:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

這段代碼可以通過編譯,但是運(yùn)行時(shí),卻報(bào)出了ClassCastException,類型轉(zhuǎn)換異常!這是因?yàn)椋髅鲃?chuàng)建了Cat類型對象,運(yùn)行時(shí),當(dāng)然不能轉(zhuǎn)換成Dog對象的。這兩個(gè)類型并沒有任何繼承關(guān)系,不符合類型轉(zhuǎn)換的定義。

為了避免ClassCastException的發(fā)生,Java提供了 關(guān)鍵字,給引用變量做類型的校驗(yàn)。

格式如下:

變量名 instanceof 數(shù)據(jù)類型
如果變量屬于該數(shù)據(jù)類型,返回true。
如果變量不屬于該數(shù)據(jù)類型,返回false。

所以,轉(zhuǎn)換前,我們最好先做一個(gè)判斷,代碼如下:

Java objektorientiert – ausführliche Einführung in den Polymorphismus

想學(xué)習(xí)更多相關(guān)教程請?jiān)L問:java入門學(xué)習(xí)

Das obige ist der detaillierte Inhalt vonJava objektorientiert – ausführliche Einführung in den Polymorphismus. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

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

PHP-Tutorial
1502
276
Wie gehe ich mit Transaktionen in Java mit JDBC um? Wie gehe ich mit Transaktionen in Java mit JDBC um? Aug 02, 2025 pm 12:29 PM

Um JDBC -Transaktionen korrekt zu verarbeiten, müssen Sie zun?chst den automatischen Komiti -Modus ausschalten und dann mehrere Vorg?nge ausführen und schlie?lich entsprechend den Ergebnissen festlegen oder rollen. 1. Nennen Sie Conn.SetAutoCommit (False), um die Transaktion zu starten. 2. Führen Sie mehrere SQL -Operationen aus, z. B. einfügen und aktualisieren. 3. Rufen Sie Conn.Commit () an, wenn alle Vorg?nge erfolgreich sind, und rufen Sie Conn.Rollback () auf, wenn eine Ausnahme auftritt, um die Datenkonsistenz zu gew?hrleisten. Gleichzeitig sollten Try-with-Ressourcen verwendet werden, um Ressourcen zu verwalten, Ausnahmen ordnungsgem?? zu behandeln und Verbindungen zu schlie?en, um Verbindungsleckage zu vermeiden. Darüber hinaus wird empfohlen, Verbindungspools zu verwenden und Save -Punkte zu setzen, um teilweise Rollback zu erreichen und Transaktionen so kurz wie m?glich zu halten, um die Leistung zu verbessern.

Vergleich von Java Frameworks: Spring Boot vs Quarkus gegen Micronaut Vergleich von Java Frameworks: Spring Boot vs Quarkus gegen Micronaut Aug 04, 2025 pm 12:48 PM

Pre-Formancetartuptimemoryusage, QuarkusandmicronautleadduToCompile-Time-foringandgraalvSupport, WithQuarkusofttenperformLightBetterin serverloser Szenarien.2. Thyvelopecosystem,

Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Aug 03, 2025 am 11:35 AM

HTTP-Protokoll Middleware in Go kann Anforderungsmethoden, Pfade, Client-IP und zeitaufw?ndiges Aufzeichnen aufzeichnen. 1. Verwenden Sie http.Handlerfunc, um den Prozessor zu wickeln, 2. Nehmen Sie die Startzeit und die Endzeit vor und nach dem Aufrufen als n?chstes auf. Der vollst?ndige Beispielcode wurde überprüft, um auszuführen und eignet sich zum Starten eines kleinen und mittelgro?en Projekts. Zu den Erweiterungsvorschl?gen geh?ren das Erfassen von Statuscodes, die Unterstützung von JSON -Protokollen und die Nachverfolgung von ID -IDs.

Wie funktioniert die Müllsammlung in Java? Wie funktioniert die Müllsammlung in Java? Aug 02, 2025 pm 01:55 PM

Die Müllsammlung von Java (GC) ist ein Mechanismus, der automatisch den Speicher verwaltet, der das Risiko eines Speicherlecks verringert, indem unerreichbare Objekte zurückgeführt werden. 1.GC beurteilt die Zug?nglichkeit des Objekts aus dem Stammobjekt (z. B. Stapelvariablen, aktive Threads, statische Felder usw.) und nicht erreichbare Objekte als Müll markiert. 2. Basierend auf dem markierten Algorithmus markieren Sie alle erreichbaren Objekte und l?schen Sie nicht markierte Objekte. 3.. Verfolgen Sie eine Generationskollektionsstrategie: Die neue Generation (Eden, S0, S1) führt h?ufig MollGC aus; Die ?lteren Menschen erzielen weniger, dauert jedoch l?nger, um MajorGC durchzuführen. MetaPace speichert Klassenmetadaten. 4. JVM bietet eine Vielzahl von GC -Ger?ten: SerialGC ist für kleine Anwendungen geeignet; ParallelgC verbessert den Durchsatz; CMS reduziert sich

Verwenden von HTML `Input` -Typen für Benutzerdaten Verwenden von HTML `Input` -Typen für Benutzerdaten Aug 03, 2025 am 11:07 AM

Durch die Auswahl des richtigen HTMlinput -Typs kann die Datengenauigkeit verbessert, die Benutzererfahrung verbessert und die Benutzerfreundlichkeit verbessert werden. 1. W?hlen Sie die entsprechenden Eingabetypen gem?? dem Datentyp aus, z. B. Text, E -Mail, Tel, Nummer und Datum, die automatisch überprüft und an die Tastatur anpassen k?nnen. 2. Verwenden Sie HTML5, um neue Typen wie URL, Farbe, Reichweite und Suche hinzuzufügen, die eine intuitivere Interaktionsmethode bieten k?nnen. 3.. Verwenden Sie Platzhalter und erforderliche Attribute, um die Effizienz und Genauigkeit der Formulierung zu verbessern. Es sollte jedoch beachtet werden, dass der Platzhalter das Etikett nicht ersetzen kann.

Vergleich von Java -Build -Werkzeugen: Maven vs. Gradle Vergleich von Java -Build -Werkzeugen: Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

GradleStheBetterChoiceFormostnewProjectsDuetoitSuperiorFlexibilit?t, Leistung und ModerntoolingSupport.1.GRADLE'SGROOVY/KOTLINDSLISMORECONCISEANDEIPRESSIVETHANMANMANBOSEXML.2.GRAGRECONCISEANDEPRPRESSIVETHANMAVENSVOSEXML.2.

Gehen Sie mit einer Beispielverschiebung erkl?rt Gehen Sie mit einer Beispielverschiebung erkl?rt Aug 02, 2025 am 06:26 AM

Auf Defer wird verwendet, um bestimmte Vorg?nge auszuführen, bevor die Funktion zurückgibt, z. B. die Reinigungsressourcen. Die Parameter werden sofort bewertet, wenn sie aufgeschoben werden, und die Funktionen werden in der Reihenfolge von Last-In-First-Out (LIFO) ausgeführt. 1. Mehrere Defers werden in umgekehrter Reihenfolge der Erkl?rungen ausgeführt. 2. h?ufig für die sichere Reinigung wie das Schlie?en von Dateien verwendet; 3. Der benannte Rückgabewert kann ge?ndert werden; V. 5. Vermeiden Sie den Missbrauch von Verschiebungen in Schleifen, um Ressourcenleckage zu verhindern. Die korrekte Verwendung kann die Sicherheit und die Lesbarkeit der Code verbessern.

Wie benutze ich das Beobachtermuster in Java? Wie benutze ich das Beobachtermuster in Java? Aug 02, 2025 am 11:52 AM

Die klare Antwort auf diese Frage ist die Empfehlung, das Beobachtermuster mithilfe einer benutzerdefinierten Observer -Schnittstelle zu implementieren. 1. Obwohl Java beobachtbar und Beobachter liefert, ist erstere eine Klasse und wurde veraltet und fehlt Flexibilit?t. 2. Die moderne empfohlene Praxis besteht darin, eine funktionale Observer -Schnittstelle zu definieren, und das Subjekt beh?lt die Beobachterliste bei und benachrichtigt alle Beobachter, wenn sich der Zustand ?ndert. 3.. Es kann in Kombination mit Lambda -Ausdrücken verwendet werden, um die Einfachheit und Wartbarkeit des Codes zu verbessern. V. Daher sollten neue Projekte ein benutzerdefiniertes Observer-Schnittstellenschema annehmen, das Typen ist, einfach zu testen und sich auf moderne Java spezialisiert zu haben

See all articles