Maison > Java > javaDidacticiel > Les variables de classe peuvent-elles être remplacées en Java ?

Les variables de classe peuvent-elles être remplacées en Java ?

Patricia Arquette
Libérer: 2024-12-02 12:24:12
original
786 Les gens l'ont consulté

Can Class Variables Be Overridden in Java?

Remplacement des variables de classe en Java : un terme impropre

En Java, les variables de classe ne peuvent pas être remplacées. Au lieu de cela, ce qui semble être une variable remplacée est en réalité une variable cachée. Pour clarifier ce concept, examinons un exemple :

class Dad {
    protected static String me = "dad";

    public void printMe() {
        System.out.println(me);
    }
}

class Son extends Dad {
    protected static String me = "son";
}

public void doIt() {
    new Son().printMe(); // Prints "dad"
}
Copier après la connexion

Ici, la fonction doIt affiche "papa" car la variable de classe me dans Son cache simplement le moi hérité de papa.

Le La principale différence entre le remplacement et le masquage est que le remplacement remplace l'implémentation de la méthode parent par l'implémentation de la méthode enfant, tandis que le masquage rend simplement le membre parent inaccessible à l'enfant. class.

Par conséquent, il n’existe aucun moyen approprié de remplacer une variable de classe. Au lieu de cela, pour imprimer "fils" dans l'exemple donné, il est nécessaire de modifier le constructeur ou de passer le paramètre name à la méthode comme dans :

public class Son extends Dad {
    private String me;

    public Son(String me) {
        this.me = me;
    }

    @Override
    public void printMe() {
        System.out.println(me);
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal