国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Mécanisme des sous-classes pour hériter des méthodes de classe parents pour accéder aux attributs privés
Description de la scène
répondre
Maison Java javaDidacticiel Comment les sous-classes définissent-elles les propriétés privées en héritant de la méthode setName de la classe parent?

Comment les sous-classes définissent-elles les propriétés privées en héritant de la méthode setName de la classe parent?

Apr 19, 2025 pm 04:57 PM
Encapsulation

Comment les sous-classes définissent-elles les propriétés privées en héritant de la méthode setName de la classe parent?

Mécanisme des sous-classes pour hériter des méthodes de classe parents pour accéder aux attributs privés

Le mécanisme d'héritage de Java, en particulier la fa?on dont les sous-classes accèdent aux propriétés privées de la classe parent à travers la méthode de la classe parent, sont souvent déroutantes. Cet article explorera ce numéro en profondeur et l'illustra avec un exemple spécifique.

Description de la scène

Supposons que nous ayons un Employee de classe parent et un Manager de sous-classe:

Employee parent:

 Employé de classe abstrait public {
    nom de cha?ne privé;

    public String getName () {Nom de retour; }
    public void setName (String name) {this.name = name; }
    Public Résumé void showmsg ();
}

Manager de sous-classe:

 Le gestionnaire de classe public étend les employés {
    greffier privé;

    Public Manager () {}
    Gestionnaire public (greffier) ??{this.clerk = greffier; }

    @Outrepasser
    public void showmsg () {System.out.println (this.getName ()); }
}

Dans le code de test, nous pouvons observer que même si name est déclaré private dans Employee , Manager peut toujours définir et imprimer la valeur de l'attribut via la méthode setName .

répondre

La clé réside dans le contr?le d'accès de Java et le polymorphisme des objets.

  • Encapsulation des attributs privés: Le mot-clé private garantit que name ne peut être accessible que par des méthodes à l'intérieur Employee . Manager de sous-classe ne peut pas accéder directement name .

  • Héritage de la méthode: Manager hérite de la méthode setName de Employee . Cela ne signifie pas que Manager a eu un accès direct à name .

  • Polymorphisme: Lorsque nous créons un objet Manager et appelons la méthode setName , bien que la méthode sur Manager soit appelée, la méthode setName définie dans Employee soit réellement exécutée. étant donné que la méthode setName est définie dans la classe Employee , il a la permission d'accéder aux membres privés de Employee (y compris name ).

Par conséquent, Manager n'accède pas directement name , mais exploite indirectement name via la méthode setName héritée. Cela reflète l'encapsulation et le polymorphisme de Java: l'encapsulation protège l'intégrité des données, et le polymorphisme permet aux sous-classes d'exploiter indirectement les membres privés de la classe parent par les méthodes de la classe parent. Cela ne casse pas l'encapsulation, mais profite des caractéristiques de la programmation orientée objet.

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Quelle est la signification de la fermeture dans l'expression lambda C++ ? Quelle est la signification de la fermeture dans l'expression lambda C++ ? Apr 17, 2024 pm 06:15 PM

En C++, une fermeture est une expression lambda qui peut accéder à des variables externes. Pour créer une fermeture, capturez la variable externe dans l'expression lambda. Les fermetures offrent des avantages tels que la réutilisabilité, la dissimulation des informations et une évaluation paresseuse. Ils sont utiles dans des situations réelles telles que les gestionnaires d'événements, où la fermeture peut toujours accéder aux variables externes même si elles sont détruites.

Avantages et inconvénients de l'encapsulation Java?: compromis entre confidentialité et maintenabilité Avantages et inconvénients de l'encapsulation Java?: compromis entre confidentialité et maintenabilité Mar 16, 2024 pm 10:07 PM

Restrictions d'accès?: l'encapsulation limite l'accès aux données internes et il peut parfois être difficile d'accéder aux informations nécessaires. Inflexibilité potentielle?: une encapsulation stricte peut limiter la personnalisation du code, ce qui rend difficile son ajustement à des besoins spécifiques. Difficulté de test?: l'encapsulation peut rendre difficile le test de l'implémentation interne car l'accès externe est restreint. Redondance du code?: pour maintenir l'encapsulation, il est parfois nécessaire de dupliquer le code, par exemple en créant plusieurs méthodes getter et setter. Surcharge de performances?: l'accès aux membres privés nécessite des méthodes getter et setter, ce qui peut entra?ner une surcharge de performances supplémentaire. évaluez la confidentialité et la maintenabilité?: lors de l'évaluation de la confidentialité et de la maintenabilité, les facteurs suivants doivent être pris en compte?:?Exigences de sécurité?: si les données sont très sensibles, la priorité en matière de confidentialité peut être élevée.

Comment exporter un programme C++ Comment exporter un programme C++ Apr 22, 2024 pm 05:45 PM

Les symboles, y compris les fonctions, les variables et les classes, sont exportés en C++ via le mot-clé extern ? C ?. Les symboles exportés sont extraits et utilisés selon les règles du langage C entre les unités de compilation ou lors de l'interaction avec d'autres langages.

Les définitions de fonctions et les appels en C++ peuvent-ils être imbriqués?? Les définitions de fonctions et les appels en C++ peuvent-ils être imbriqués?? May 06, 2024 pm 06:36 PM

Peut. C++ autorise les définitions et les appels de fonctions imbriquées. Les fonctions externes peuvent définir des fonctions intégrées et les fonctions internes peuvent être appelées directement dans la portée. Les fonctions imbriquées améliorent l'encapsulation, la réutilisabilité et le contr?le de la portée. Cependant, les fonctions internes ne peuvent pas accéder directement aux variables locales des fonctions externes et le type de valeur de retour doit être cohérent avec la déclaration de la fonction externe. Les fonctions internes ne peuvent pas être auto-récursives.

Principes de programmation de la philosophie Unix Principes de programmation de la philosophie Unix Feb 20, 2024 am 10:54 AM

1Philosophie Unix La philosophie Unix met l'accent sur l'aspect pratique, est issue d'une riche expérience et n'est pas limitée par les méthodologies ou les normes traditionnelles. Cette connaissance est plus latente et semi-instinctive. Les connaissances que les programmeurs Unix accumulent grace à leur expérience de développement peuvent profiter à d’autres programmeurs. (1) Chaque programme doit se concentrer sur l'accomplissement d'une tache et recommencer lorsqu'il est confronté à une nouvelle tache afin d'éviter d'ajouter de nouvelles fonctions au programme d'origine, ce qui entra?nerait une complexité accrue. (2) En supposant que la sortie d'un programme deviendra l'entrée d'un autre programme, même si le programme suivant n'est pas clair, assurez-vous que la sortie ne contient pas d'informations non pertinentes. (3) Mettez le logiciel con?u et écrit en essai dès que possible, éliminez de manière décisive le code de mauvaise qualité et réécrivez-le. (4) Utiliser des outils avant des moyens auxiliaires inefficaces pour réduire le fardeau des taches de programmation et viser l'excellence.

Quels sont les avantages de l'utilisation des expressions lambda C++ pour la programmation fonctionnelle?? Quels sont les avantages de l'utilisation des expressions lambda C++ pour la programmation fonctionnelle?? Apr 17, 2024 am 10:18 AM

Les expressions lambda C++ apportent des avantages à la programmation fonctionnelle, notamment?: Simplicité?: les fonctions en ligne anonymes améliorent la lisibilité du code. Réutilisation du code?: les expressions Lambda peuvent être transmises ou stockées pour faciliter la réutilisation du code. Encapsulation?: fournit un moyen d'encapsuler un morceau de code sans créer de fonction distincte. Cas pratique : filtrer les nombres impairs dans la liste. Calculer la somme des éléments d'une liste. Les expressions Lambda offrent la simplicité, la réutilisabilité et l'encapsulation de la programmation fonctionnelle.

Meilleures pratiques pour les modificateurs d'accès des fonctions Java Meilleures pratiques pour les modificateurs d'accès des fonctions Java Apr 25, 2024 pm 04:54 PM

Bonne pratique pour les modificateurs d'accès aux fonctions Java?: utilisez le modificateur le plus restrictif, qui est défini sur privé par défaut. Les classes internes utilisent le modificateur privé. Les méthodes protégées utilisent le modificateur protected pour autoriser l'accès aux sous-classes. Toutes les propriétés de la classe immuable sont définies comme privées et accessibles via des méthodes getter. Les API publiques utilisent le modificateur public afin que les classes externes puissent y accéder.

Comment concevoir des objets de fonction STL personnalisés pour améliorer la réutilisabilité du code?? Comment concevoir des objets de fonction STL personnalisés pour améliorer la réutilisabilité du code?? Apr 25, 2024 pm 02:57 PM

L'utilisation d'objets fonction STL peut améliorer la réutilisabilité et comprend les étapes suivantes?: Définir l'interface de l'objet fonction (créer une classe et hériter de std::unary_function ou std::binary_function) Surcharger l'opérateur() pour définir le comportement de la fonction dans l'opérateur surchargé(). Implémentez les fonctionnalités requises via des algorithmes STL (tels que std::transform) à l'aide d'objets fonction

See all articles