Unter Berücksichtigung der folgenden:Überschrieben Methodenaufruf in Mutter Methode
public class Child extends Parent{
public boolean isMeh(){
return true;
}
public void childMethod() {
System.out.println("child: "+isMeh());
}
public static void main(String... args){
Child child = new Child();
child.parentMethod();
child.childMethod();
}
}
class Parent{
public boolean isMeh(){
return false;
}
public void parentMethod() {
System.out.println("parent: "+isMeh());
}
}
Ausgang:
parent: true
child: true
Es ist ziemlich offensichtlich, wenn isMeh() innerhalb Child-Klasse aufgerufen wird, wird die überschriebene Methode aufruft.
Wenn die überschriebene Methode innerhalb einer Methode des übergeordneten Elements aufgerufen wird, wird die Methode des untergeordneten Objekts dennoch aufgerufen.
Ich sehe, dass wir ein Kind-Objekt erstellen und ParentMethod ist nur vererbt, also wenn wir IsMeh() aufrufen ruft es die verfügbare (überschriebene).
Was wäre der Grund für diese Implementierung in Java?
Warum nicht? Wenn Sie etwas als Kind aufrufen, wird die überschriebene Methode aufgerufen. Wenn Sie jedoch sagen, Parent p = new Parent(); p.isMeh(); es wird nur falsch zurückgegeben. –
Die einfache Sache zu verstehen ist, Methoden werden auf Objekt und Variablen auf Referenz aufgerufen, so, wenn ich Eltern p = new parent() tun, wird die übergeordnete Methode aufgerufen. –