i3810jaz
Freizeitschrauber(in)
Mit Java in der Version 8 ist es nun endlich möglich Mehrfachvererbung zu nutzen. Hierzu werden Interfaces genutzt, denen man eine Standard-Implementierung mitgibt.
Eine Besonderheit bei der Vererbung mit Interfaces ist, das Codeänderungen rückwirkend passieren. Das bedeutet wenn man einen Menschen hat, der von einem Affen erbt und diese nun verschiedene "essen()"-Methoden haben, aber nur der Affe eine "doTagesablauf()"-Methode (in welcher dann auch die "essen()"-Methode aufgerufen wird). So wird nun beim Menschen beim Ausführen von "doTagesablauf()" ,die "essen()"-Methode des Menschen und nicht wie normal die des Affen aufrufen.
Code-Beispiel:
Chicken.java:
Cow.java
Von diesen beiden Klassen erbt nun das Monster
Monster.java
Nun wird zum Beispiel diese Programm-Routine,
Mehrfachvererbung.java
diesen Output erzeugen,
da das Erben mit Interfaces ein bisschen anders funktioniert.
P.S.: Ich hoffe, dass ich keine Fehler eingebaut habe, wenn doch korrigiert mich bitte.
Eine Besonderheit bei der Vererbung mit Interfaces ist, das Codeänderungen rückwirkend passieren. Das bedeutet wenn man einen Menschen hat, der von einem Affen erbt und diese nun verschiedene "essen()"-Methoden haben, aber nur der Affe eine "doTagesablauf()"-Methode (in welcher dann auch die "essen()"-Methode aufgerufen wird). So wird nun beim Menschen beim Ausführen von "doTagesablauf()" ,die "essen()"-Methode des Menschen und nicht wie normal die des Affen aufrufen.
Code-Beispiel:
Chicken.java:
Code:
public interface Chicken {
default public void fly(){
System.out.println("Das Hühnchen landet im Dreck!");
}
}
Code:
public interface Cow {
default public void bla(){
giveMilk();
}
default public void giveMilk(){
System.out.println("Die Kuh gab dir etwas Milch");
}
}
Von diesen beiden Klassen erbt nun das Monster
Monster.java
Code:
public interface Monster extends Cow, Chicken {
default public void giveMilk(){
System.out.println("Diese Milch sollte man lieber nicht mehr trinken, schütte sie weg!");
}
}
Nun wird zum Beispiel diese Programm-Routine,
Mehrfachvererbung.java
Code:
public class MehrfachVererbung {
public static void main(String[] args) {
Monster m = new Monster() {};
m.bla();
m.fly();
}
}
diesen Output erzeugen,
Code:
Diese Milch sollte man lieber nicht mehr trinken, schütte sie weg!
Das Hühnchen landet im Dreck!
P.S.: Ich hoffe, dass ich keine Fehler eingebaut habe, wenn doch korrigiert mich bitte.
Zuletzt bearbeitet: