Maison > Java > javaDidacticiel > Comment puis-je accéder aux méthodes de sous-classe à partir d'une variable de superclasse dans la programmation orientée objet ?

Comment puis-je accéder aux méthodes de sous-classe à partir d'une variable de superclasse dans la programmation orientée objet ?

Mary-Kate Olsen
Libérer: 2024-12-08 00:55:15
original
534 Les gens l'ont consulté

How Can I Access Subclass Methods from a Superclass Variable in Object-Oriented Programming?

Appel de méthodes de sous-classe à partir d'une superclasse : compréhension de la compatibilité des types

Lorsque vous travaillez avec l'héritage dans la programmation orientée objet, l'accès aux méthodes spécifiques aux sous-classes de une variable de superclasse peut être difficile. En effet, par défaut, une variable déclarée comme type de superclasse ne peut accéder qu'aux méthodes publiques et aux variables membres qui existent dans la superclasse.

Pour illustrer cela, considérons l'exemple de code fourni dans la question. Ici, une superclasse Pet est définie avec des propriétés et des méthodes communes comme le nom et l'âge. Trois sous-classes, Chien, Chat et Oiseau, héritent de Animal de compagnie et introduisent des traits et des méthodes uniques pour chaque type d'animal.

Au sein de la classe principale Kennel, l'utilisateur tente d'accéder au méthodes spécifiques aux sous-classes, telles que cat.getColor(), dog.getBreed() et bird.getWingspan(), qui sont uniques à Chat, Chien et Oiseau, respectivement. Cependant, ces méthodes ne sont pas accessibles car cat, dog et bird sont déclarées comme instances de la superclasse Pet.

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

  1. Déclarer les variables en tant que types de sous-classes concrètes :

    • Déclarer les variables en tant qu'instances spécifiques de la sous-classe. Par exemple :

      Cat cat = new Cat("Feline", 12, "Orange");
      Dog dog = new Dog("Spot", 14, "Dalmation");
      Bird bird = new Bird("Feathers", 56, 12);
      Copier après la connexion
  2. Transformer des variables en types de sous-classes concrètes :

    • Transformer une variable de superclasse vers le type de sous-classe attendu en utilisant l'opérateur de conversion ((())). Par exemple :

      Pet pet = new Cat("Feline", 12, "Orange");
      Cat cat = (Cat) pet;
      Copier après la connexion

Les deux approches permettent d'accéder aux méthodes et propriétés spécifiques aux sous-classes via les variables respectives.

En Java, le Le type d'une variable détermine les méthodes disponibles et les variables membres accessibles. En déclarant des variables en tant que sous-classes concrètes ou en les convertissant en types de sous-classes attendus, vous garantissez l'accès à la fonctionnalité souhaitée.

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