Maison >Java >javaDidacticiel >Détails masqués sur les variables membres en Java
L'éditeur suivant vous apportera un article sur le masquage des variables membres Java (explication avec exemples). L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil.
1. S'il existe une variable membre portant le même nom dans la sous-classe et la classe parent, la variable membre de la sous-classe écrasera-t-elle la variable membre de la classe parent ? Regardons l'exemple suivant :
public class A { public int x=10; } public class B extends A { public int x=20; } public class C { public static void main(String[] args) { A a=new B(); System.out.println(a.x); //1 B b=new B(); System.out.println(b.x); //2 System.out.println(((A)b).x); //3 } }
Le résultat de l'exécution de la méthode principale de la classe C est :
10
20
10
À travers les résultats, nous pouvons voir que la sous-classe n'écrasera pas les variables membres de la classe parente. Notre outil de débogage Eclipse peut également voir clairement cela dans l'objet a. Il existe deux variables membres de L'accès direct aux membres d'un objet est lié statiquement. L'explication officielle est la suivante :
Dans une classe, si les variables membres de la sous-classe ont le même nom que les variables membres de la classe. la classe parent, même si leurs types sont différents, tant que les noms sont les mêmes. Les variables membres de la classe parent seront masquées.
Le résultat est le suivant :
public class A { public static void print() { System.out.println("A Static "); } } public class B extends A { public static void print() { System.out.println("B Static "); } } public class C { public static void main(String[] args) { A a=new B(); a.print(); B b=new B(); b.print(); ((A)b).print(); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!