Maison > Java > javaDidacticiel > le corps du texte

02.Bases de Java - Héritage

黄舟
Libérer: 2017-02-27 10:09:29
original
1238 Les gens l'ont consulté

Concepts de base

  • Le concept d'héritage : Créer une nouvelle classe basée sur le type d'un classe existante, Sans changer la forme de la classe existante, cette approche est appelée héritage.

  • Le rôle de l'héritage : Après avoir créé une classe P, vous devez maintenant créer une nouvelle classe S, mais la fonction est similaire à P. À l'heure actuelle, si nous voulons être paresseux et ne voulons pas réécrire S, nous pouvons le faire par héritage.

  • Relation d'héritage  : La relation d'héritage est divisée en classe parent (classe de base) et classe enfant (classe dérivée). La classe parent est l'objet hérité (tel que P) et la sous-classe est l'objet hérité implémenté (tel que S).

  • Méthode d'héritage : L'héritage de classe est un héritage unique, c'est-à-dire qu'une fois que S a hérité de P, il ne peut pas hériter de P2.

  • Caractéristiques de l'héritage  : Les sous-classes obtiendront automatiquement tous les champs (variables) et méthodes de la classe parent par héritage.

  • Implémentation de l'héritage : L'héritage est implémenté en Java via le mot-clé extends.

class Parent {
}

class Son extends Parent {
}
Copier après la connexion
Copier après la connexion

Relation IS-A

La relation d'héritage en Java est une IS-A relation .

Comment comprendre la relation IS-A, prenons la châtaigne ci-dessus : S hérite de P, on peut dire que S est P.

Dans une relation successorale, le successeur peut remplacer intégralement le successeur, mais pas l'inverse. En un mot, nous "pouvons traiter les gens comme des animaux, mais nous ne pouvons pas traiter les animaux comme des personnes".


Constructeur et héritage

Une classe s'initialise en appelant le constructeur. Pour l'héritage, les constructeurs de sous-classes et de classes parents ont les caractéristiques suivantes :

  • Lorsqu'une sous-classe hérite d'une classe parent, si le constructeur de la classe parent est implicitement construit Device , vous n'avez pas besoin de l'appeler manuellement.

  • Lorsqu'une sous-classe hérite d'une classe parent, si le constructeur de la classe parent est un constructeur explicite, il doit être appelé manuellement. Lorsqu'une sous-classe

  • hérite d'une classe parent, l'ordre des appels au constructeur est toujours de la classe parent vers vers le bas.

Explorons-le à travers un exemple :

class Parent {    // 无参构造器,即隐式构造器。
    public Parent() {
        System.out.println("initializing Parent");
    }
}

class Son extends Parent {    // 带参构造器,属显式构造器
    public Son(String name) {        // 关键 -> 由于父类是隐式构造器,这里可以不调用。
        System.out.println("initializing "+name);
    }
}

class Grandson extends Son {    public Grandson() {        // 关键 -> 父类是显式构造函数,必须手动调用
        super("son");
        System.out.println("initializing Grandson");
    }
}public class Test {
    public static void main(String[] args) {
        Grandson grandson = new Grandson();        // 关键 -> 构造器调用顺序总是从父类依次往下进行的,打印内容如下:
        // initializing Parent
        // initializing Son
        // initializing Grandson
    }
}
Copier après la connexion
Copier après la connexion

Concepts de base

  • La notion d'héritage : Créer une nouvelle classe selon le type de la classe existante sans changer la forme de la classe existante. Cette méthode est appelée héritage.

  • Le rôle de l'héritage : Après avoir créé une classe P, vous devez maintenant créer une nouvelle classe S, mais la fonction est similaire à P. À l'heure actuelle, si nous voulons être paresseux et ne voulons pas réécrire S, nous pouvons le faire par héritage.

  • Relation d'héritage  : La relation d'héritage est divisée en classe parent (classe de base) et classe enfant (classe dérivée). La classe parent est l'objet hérité (tel que P) et la sous-classe est l'objet hérité implémenté (tel que S).

  • Méthode d'héritage : L'héritage de classe est un héritage unique, c'est-à-dire qu'une fois que S a hérité de P, il ne peut pas hériter de P2.

  • Caractéristiques de l'héritage  : Les sous-classes obtiendront automatiquement tous les champs (variables) et méthodes de la classe parent par héritage.

  • Implémentation de l'héritage : L'héritage est implémenté en Java via le mot-clé extends.

class Parent {
}

class Son extends Parent {
}
Copier après la connexion
Copier après la connexion

Relation IS-A

La relation d'héritage en Java est une relation IS-A.

Comment comprendre la relation IS-A, prenons la châtaigne ci-dessus : S hérite de P, on peut dire que S est P.

Dans une relation successorale, le successeur peut remplacer intégralement le successeur, mais pas l'inverse. En un mot, nous "pouvons traiter les gens comme des animaux, mais nous ne pouvons pas traiter les animaux comme des personnes".


Constructeur et héritage

Une classe s'initialise en appelant le constructeur. Pour l'héritage, les constructeurs de sous-classes et de classes parents ont les caractéristiques suivantes :

  • Lorsqu'une sous-classe hérite d'une classe parent, si le constructeur de la classe parent est implicitement construit Device , vous n'avez pas besoin de l'appeler manuellement.

  • Lorsqu'une sous-classe hérite d'une classe parent, si le constructeur de la classe parent est un constructeur explicite, il doit être appelé manuellement. Lorsque la sous-classe

  • hérite de la classe parent, l'ordre des appels du constructeur est toujours de classe parent à vers le bas.

Explorons-le à travers un exemple :

class Parent {    // 无参构造器,即隐式构造器。
    public Parent() {
        System.out.println("initializing Parent");
    }
}

class Son extends Parent {    // 带参构造器,属显式构造器
    public Son(String name) {        // 关键 -> 由于父类是隐式构造器,这里可以不调用。
        System.out.println("initializing "+name);
    }
}

class Grandson extends Son {    public Grandson() {        // 关键 -> 父类是显式构造函数,必须手动调用
        super("son");
        System.out.println("initializing Grandson");
    }
}public class Test {
    public static void main(String[] args) {
        Grandson grandson = new Grandson();        // 关键 -> 构造器调用顺序总是从父类依次往下进行的,打印内容如下:
        // initializing Parent
        // initializing Son
        // initializing Grandson
    }
}
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu de 02.Bases de Java - héritage Pour plus de contenu connexe, veuillez faire attention à. le site PHP chinois (www .php.cn) !


Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal