Tout le monde sait que l'héritage des sous-classes des classes de parents est un héritage de type, y compris les attributs et les méthodes! Si la sous-classe et la classe parent ont la même signature, elle s'appelle l'écrasement! Si les attributs de la sous-classe et de la classe parent sont les mêmes, la classe parent cachera ses propres attributs!
Mais si j'utilise les références créées par la classe parent et la classe enfant pour pointer vers l'objet créé par la classe enfant, quel est le résultat de la valeur ou de la méthode de la propriété dans l'objet de classe enfant appelée?
Regardez le code:
classe publique FieldDemo {public static void main (String [] args) {étudiant t = new Student ("Jack"); Personne p = t; // La référence créée par la classe parent pointe vers l'objet créé par la sous-classe System.out.println (t.name + "," + p.name); System.out.println (t.getName () + "," + p.getName ()); }} classe de classe {nom de chaîne; en âge; public String getName () {return this.name; }} classe étudiant étend la personne {nom de chaîne; // L'attribut et le nom d'attribut de classe parent sont les mêmes, mais ce ne sera pas le même que le nom d'attribut de classe Parent pendant le développement! ! Étudiant public (nom de chaîne) {this.name = name; super.name = "rose"; // Attribuez une valeur aux attributs dans la classe parent} public String getName () {return this.name; }} Le résultat de retour est:
Jack, Rose
Jack, Jack
La raison en est: en Java, les attributs sont liés aux types et les méthodes sont liées aux objets!
L'article est très simple, mais il a également une certaine valeur pratique. J'espère que cela sera utile à l'apprentissage de tous.