class A {}
class B extends A{}
A objectX = new B();
Que signifie la dernière ligne? Est-ce un objet de classe A ou est-ce un objet de classe B.Je suis confus au sujet du polymorphisme et de l'objet de la classe
L'instance et l'objet ont-ils la même signification? Est-ce que l'instance objectX de A ou est-ce une instance de B?
Lorsque nous exécutons objectX.SomeMethod. Que va vérifier le compilateur? Ou méthode sera vérifiée lors de l'exécution?
class A{}
class B extends A{}
public class Main{
public static void main(String[] args){
A objectX = new B();
System.out.println(objectX instanceof B);//line 1
System.out.println(objectX instanceof A);//line 2
}
}
Si je lance le code ci-dessus pourquoi est-il me donne vrai pour la ligne 1 et la ligne 2.objectX pointe vers b.Comment venir ObjectX est une instance de A.?
C'est une référence de type A, se référant à un objet de type B. Cela signifie que vous ne pouvez appeler que des méthodes et vous référer aux champs définis dans la classe A. –
C'est beaucoup plus facile si vous montrez votre question dans le code, plutôt que d'essayer de le décrire en mots. –
Visitez: https://stackoverflow.com/questions/13077009/java-difference-between-ax-new-a-and-ax-new-b-when-b-extends-a –