Heim Java javaLernprogramm Java-Verbesserung (8) ----- Implementierung der Mehrfachvererbung

Java-Verbesserung (8) ----- Implementierung der Mehrfachvererbung

Feb 09, 2017 pm 01:46 PM

Mehrfachvererbung bedeutet, dass eine Klasse gleichzeitig Verhaltensweisen und Merkmale von mehr als einer übergeordneten Klasse erben kann. Wir wissen jedoch, dass Java aus Gründen der Datensicherheit nur eine Einzelvererbung zulässt. Manchmal denken wir, dass es oft ein schlechtes Design ist, wenn im System eine Mehrfachvererbung erforderlich ist. Zu diesem Zeitpunkt müssen wir häufig nicht darüber nachdenken, wie die Mehrfachvererbung verwendet wird, sondern ob es manchmal Probleme mit Ihrem Design gibt Wir müssen die Mehrfachvererbung umsetzen, und solche Situationen gibt es tatsächlich im wirklichen Leben, wie zum Beispiel bei der Vererbung: Wir erben sowohl das Verhalten und die Eigenschaften unseres Vaters als auch das Verhalten und die Eigenschaften unserer Mutter. Glücklicherweise ist Java sehr freundlich und verständnisvoll. Es bietet uns zwei Möglichkeiten, Mehrfachvererbung zu implementieren: Schnittstellen und innere Klassen.

1. Schnittstelle

Bei der Einführung von Schnittstellen und abstrakten Klassen haben wir gelernt, dass Unterklassen nur eine übergeordnete Klasse erben können, was bedeutet, dass es nur eine geben kann Einzelvererbung, kann aber mehrere Schnittstellen implementieren, was uns den Weg ebnet, Mehrfachvererbung zu implementieren.

Bei Schnittstellen handelt es sich manchmal um mehr als nur eine reinere abstrakte Klasse. Die Schnittstelle verfügt nicht über eine spezifische Implementierung, das heißt, es gibt keinen mit der Schnittstelle verbundenen Speicher, sodass keine Kombination mehrerer Schnittstellen möglich ist ist blockiert.

interface CanFight {  
    void fight();  
}  
  
interface CanSwim {  
    void swim();  
}  
  
  
interface CanFly {  
    void fly();  
}  
  
public class ActionCharacter {  
    public void fight(){  
          
    }  
}  
  
public class Hero extends ActionCharacter implements CanFight,CanFly,CanSwim{  
  
    public void fly() {  
    }  
  
    public void swim() {  
    }  
  
    /** 
     * 对于fight()方法,继承父类的,所以不需要显示声明 
     */  
}
Nach dem Login kopieren

2. Interne Klassen

Die oben beschriebene Verwendung von Schnittstellen zur Implementierung der Mehrfachvererbung ist eine praktikablere und gebräuchlichere Methode. Bei der Einführung interner Klassen haben wir darüber gesprochen, wie interne Klassen die Mehrfachvererbung ermöglichen Die Implementierung ist perfekter geworden und es ist auch klar, dass ich die Mehrfachvererbung nur über innere Klassen implementieren kann, wenn es sich bei der übergeordneten Klasse um eine abstrakte Klasse oder eine konkrete Klasse handelt. Wie Sie mithilfe interner Klassen eine Mehrfachvererbung erreichen, sehen Sie sich bitte das folgende Beispiel an: Wie ein Sohn die Mehrfachvererbung nutzt, um die hervorragenden Gene seines Vaters und seiner Mutter zu erben.

Zuerst Vater und Mutter:

public class Father {  
    public int strong(){  
        return 9;  
    }  
}  
  
public class Mother {  
    public int kind(){  
        return 8;  
    }  
}
Nach dem Login kopieren

Das Highlight ist da, Sohn:

public class Son {  
      
    /** 
     * 内部类继承Father类 
     */  
    class Father_1 extends Father{  
        public int strong(){  
            return super.strong() + 1;  
        }  
    }  
      
    class Mother_1 extends  Mother{  
        public int kind(){  
            return super.kind() - 2;  
        }  
    }  
      
    public int getStrong(){  
        return new Father_1().strong();  
    }  
      
    public int getKind(){  
        return new Mother_1().kind();  
    }  
}
Nach dem Login kopieren

Testablauf:

public class Test1 {  
  
    public static void main(String[] args) {  
        Son son = new Son();  
        System.out.println("Son 的Strong:" + son.getStrong());  
        System.out.println("Son 的kind:" + son.getKind());  
    }  
  
}  
----------------------------------------  
Output:  
Son 的Strong:10  
Son 的kind:6
Nach dem Login kopieren

Der Sohn erbte seinen Vater und wurde stärker als sein Vater. Er erbte auch seine Mutter, aber sein Sanftmutindex sank. Hier werden zwei innere Klassen definiert, die jeweils das Verhalten ihrer jeweiligen Elternklassen erben. Dies ist ein wichtiges Merkmal der inneren Klasse: Die innere Klasse kann eines von ihnen erben Äußere Klassen gewährleisten die Unabhängigkeit interner Klassen. Dadurch wird eine Mehrfachvererbung möglich.


Das Obige ist der Inhalt von Java Improvement (8) ----- Implementing Multiple Inheritance Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www .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

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden? Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden? Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement? Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement? Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

See all articles