Heim > Java > javaLernprogramm > Hauptteil

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

黄舟
Freigeben: 2017-02-09 13:46:43
Original
1751 Leute haben es durchsucht

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) !


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!