Maison > Java > javaDidacticiel > Comment puis-je accéder aux méthodes de sous-classe à l'aide d'une référence de superclasse en Java ?

Comment puis-je accéder aux méthodes de sous-classe à l'aide d'une référence de superclasse en Java ?

Mary-Kate Olsen
Libérer: 2024-12-04 13:32:09
original
295 Les gens l'ont consulté

How Can I Access Subclass Methods Using a Superclass Reference in Java?

Appel de méthodes de sous-classe à partir d'une superclasse

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)
Copier après la connexion

Pour résoudre ce problème, il existe quelques options :

  1. Déclarez la variable comme classe dérivée :
Cat cat = new Cat("Feline", 12, "Orange");
cat.getName(); // Allowed
cat.getColor(); // Allowed
Copier après la connexion

Cette approche fournit un accès direct aux méthodes et aux membres de la sous-classe variables.

  1. Convertissez la variable en type de sous-classe :
Pet cat = new Cat("Feline", 12, "Orange");
((Cat)cat).getName(); // Allowed
((Cat)cat).getColor(); // Allowed
Copier après la connexion

Ici, nous convertissons explicitement la variable cat en type Cat avant accéder aux méthodes spécifiques à la sous-classe.

  1. Combinez les deux approches :
Pet pet = new Cat("Feline", 12, "Orange");
Cat cat = (Cat)pet;
cat.getName(); // Allowed
cat.getColor(); // Allowed
Copier après la connexion

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!

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