ici travaille code javaEst-ce que java peut appeler une méthode substituée par un parent dans d'autres objets mais pas sous-type?
class Cup {
public String sayColor() {
return "i have a color .";
}
}
class TCup extends Cup{
public String sayColor(){
System.out.println(super.getClass().getName());
return super.sayColor()+"color is tee green.";
}
}
class MyTCup extends TCup {
public String sayColor(){
System.out.println(super.getClass().getName());
return super.sayColor()+"but brushed to red now!";
}
}
class Test {
public static void main(String[] args) {
Cup c = new MyTCup();
System.out.print(c.sayColor());
}
}
et l'exécution des impressions de classe de test
MyTCup
MyTCup
i have a color .color is tee green.but brushed to red now!
question 1: Au moment de l'exécution, l'objet type de C est MyTCup, mais il peut toujours appeler la méthode super Est-ce qu'il y a une pile de méthode dans la mémoire dans MyTCup après avoir initialisé l'objet, et puis peut appeler à l'exécution comme le code?
question 2: Il n'y a aucun moyen d'appeler la super-méthode dans d'autres objets. Comme je le sais, C++ peut lancer à appeler la méthode parent à tout moment.Pourquoi la conception de Java comme ça?
Vous devriez probablement accepter la réponse une fois que vous êtes satisfait :) –