En Java, lorsque vous travaillez avec l'héritage, il est possible de rencontrer des difficultés pour accéder aux méthodes spécifiques à une sous-classe via une référence de superclasse.
Le problème survient lorsqu'une variable est déclarée comme ayant le type superclasse, restreignant l'accès aux méthodes et aux variables membres définies uniquement dans la superclasse. Par exemple, le code suivant illustre le problème :
Pet cat = new Cat("Feline", 12, "Orange"); cat.getName(); // This is allowed cat.getColor(); // This is not allowed (getColor() is not in Pet)
Pour résoudre ce problème, il existe quelques options :
Cat cat = new Cat("Feline", 12, "Orange"); cat.getName(); // Allowed cat.getColor(); // Allowed
Cette approche fournit un accès direct aux méthodes et aux membres de la sous-classe variables.
Pet cat = new Cat("Feline", 12, "Orange"); ((Cat)cat).getName(); // Allowed ((Cat)cat).getColor(); // Allowed
Ici, nous convertissons explicitement la variable cat en type Cat avant accéder aux méthodes spécifiques à la sous-classe.
Pet pet = new Cat("Feline", 12, "Orange"); Cat cat = (Cat)pet; cat.getName(); // Allowed cat.getColor(); // Allowed
Cela combine les deux méthodes pour plus de commodité et de clarté.
En utilisant ces techniques, vous pouvez appeler efficacement des méthodes de sous-classe à partir de références de superclasse, garantissant ainsi l'accès à les fonctionnalités souhaitées.
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!