Also habe ich den folgenden Code haben:Aufruf Super Methode aus einer Unterklasse Instanz
class Super {
private String name="super";
public String name(){
return this.name;
}
}
class Sub extends Super {
private String name = "sub";
}
public class Main {
public static void main(String[] args) {
System.out.println(new Sub().name());
}
}
, was ich bekommen ist als Ergebnis ist: super. Ich wusste nicht warum?! Ist nicht die Methode name()
soll this
des Objekts aufrufen, das von aufgerufen wurde und seit Sub
erweitert Super
dann sollte es in der Lage sein, es auf seine Mitglieder zu verwenden?!
Eine einfache Regel zu erinnern: ** Felder sind nicht polymorph **, nur Methoden sind (es sei denn, sie sind privat, endgültig oder statisch). – Pshemo