Maison Java javaDidacticiel Les trois fonctionnalités majeures de Java : encapsulation, héritage et polymorphisme

Les trois fonctionnalités majeures de Java : encapsulation, héritage et polymorphisme

Jul 16, 2019 pm 04:32 PM
java 多态 封装 继承

Nous savons que les trois caractéristiques majeures de l'orientation objet sont l'encapsulation, l'héritage et le polymorphisme. Cependant, nous sommes parfois toujours confus quant à ces concepts. Ces concepts sont organisés ci-dessous pour jeter une base solide pour la future programmation orientée abstraction.

 

La notion d'encapsulation est quand même facile à comprendre. Si vous pouvez définir des classes, alors je pense que vous avez pleinement saisi le concept d'encapsulation. Les classes définies ci-dessous sont l'encapsulation des données.  

L'avantage d'hériter de est la réutilisation du code. Les sous-classes héritées possèdent automatiquement toutes les propriétés et méthodes de la classe parent. Donc hériter de classes existantes signifie réutiliser les méthodes et les champs de ces classes. Sur cette base, les sous-classes peuvent également ajouter de nouvelles méthodes et de nouveaux champs pour répondre à de nouveaux besoins. Il s'agit d'une technologie fondamentale dans la programmation Java.

Alors comment juger si un héritage est nécessaire ? La relation « est-un » est une caractéristique évidente de l’héritage. Le sens de cette phrase peut être interprété comme : La raison pour laquelle l’Étudiant hérite de la Personne est parce que l’Étudiant est une Personne. S’il n’y avait pas une telle relation, il n’y aurait pas besoin d’héritage. C'est aussi la définition du principe de substitution de Liskov, les sous-types doivent pouvoir remplacer leurs types parents.

Lors de la définition d'une sous-classe en étendant une superclasse, il vous suffit de souligner les différences entre la sous-classe et la superclasse. Par conséquent, lors de la conception d'une classe, les méthodes générales doivent être placées dans la super classe,

et les méthodes à des fins spéciales doivent être placées dans des sous-classes. Cette approche consistant à placer des fonctions générales dans la super classe est très courante dans les objets. programmation orientée.

La liaison dynamique a une fonctionnalité très importante : le programme peut être étendu sans modifier le code existant. Le polymorphisme est donc la base du principe ouvert et fermé.

Ce qui suit est un exemple spécifique d'héritage et d'implémentation polymorphe :

abstract est le mot-clé abstract. (Il vaut mieux hériter d’une classe abstraite que d’une classe concrète).

public abstract class Person {  // 抽象类
    private String name;  // 私有变量
    
    public String getName() {  // Getter方法
        return name;
    }    public void setName(String name) {  //Setter方法
        this.name = name;
    }        
    public Person(String name) {  // 构造函数,用于初始化name
        super();        this.name = name;
    }    public abstract String getDesc();  // 抽象类中的抽象方法。  只有声明,没有具体实现。
        public String toString(){      // toString方法覆盖了Object类的toString方法
         return name + getDesc();
      }

}
Copier après la connexion
extends est un mot-clé hérité. Student hérite de Person, donc Student a l'attribut name.

public class Student extends Person {  // 继承类
    private String major; // 新增加的数据    

    public String getMajor() {        return major;
    }    public void setMajor(String major) {        this.major = major;
    }    

    public Student(String name,String major) { // 构造函数用于初始化
        super(name);   // 调用超类构造函数
        this.major = major;
    }

    @Override    public String getDesc() {  // 必须实现超类中的抽象方法        // TODO Auto-generated method stub
        return " : a student, major is " + major;
    }
Copier après la connexion

Toute sous-classe qui hérite d'une super classe doit implémenter (quelle que soit la méthode d'implémentation) la définition dans la super classe méthode abstraite.

public class Employee extends Person{
    private double salary;
    public double getSalary() {
        return salary;
    }public void setSalary(double salary) {
        this.salary = salary;
    } 
   public Employee(String name, double salary) {
       super(name);
       this.salary = salary;
    }

    @Override
    public String getDesc() {        // TODO Auto-generated method stub
        return " :a employee, salary is " + salary;
    }
}
Copier après la connexion
rrreeExécution des résultats


On peut également voir à partir de cet exemple qu'il n'y a pas d'héritage sans encapsulation, et Sans héritage, il n’y aurait pas de polymorphisme.

Les trois fonctionnalités majeures de Java : encapsulation, héritage et polymorphismeComprendre l'encapsulation, l'héritage et le polymorphisme (en particulier le polymorphisme) est la base pour comprendre les modèles de conception.

Pour en savoir plus sur les tutoriels Java, vous pouvez visiter :

Tutoriel Java

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

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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 grâce à 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)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Expliquez la différence entre soi ::, parent :: et statique :: dans php oop. Expliquez la différence entre soi ::, parent :: et statique :: dans php oop. Apr 09, 2025 am 12:04 AM

Dans PhPoop, self :: fait référence à la classe actuelle, Parent :: fait référence à la classe parent, static :: est utilisé pour la liaison statique tardive. 1. self :: est utilisé pour la méthode statique et les appels constants, mais ne prend pas en charge la liaison statique tardive. 2.Parent :: est utilisé pour que les sous-classes appellent les méthodes de classe parent, et les méthodes privées ne sont pas accessibles. 3.Static :: prend en charge la liaison statique tardive, adaptée à l'héritage et au polymorphisme, mais peut affecter la lisibilité du code.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

See all articles