Maison >Java >javaDidacticiel >Orienté objet (héritage, remplacement, this, super, classe abstraite)

Orienté objet (héritage, remplacement, this, super, classe abstraite)

巴扎黑
巴扎黑original
2017-06-26 09:59:572085parcourir

Hérité
Lors de la définition d'une classe B, on constate que la classe A existante est similaire à la classe B à définir, et la classe B est un type de classe A, la classe B peut être défini comme une sous-classe de classe A de A.

Lorsque plusieurs classes ont un contenu commun, le contenu commun peut être extrait vers le haut et extrait dans une nouvelle classe. Cette nouvelle classe forme une relation avec plusieurs classes appelée héritage.
Une fois qu'une sous-classe hérite d'une classe parent, elle possède automatiquement tous les attributs et fonctions héritables de la classe parent.

Notes
Java ne prend en charge que l'héritage unique, ne prend pas en charge l'héritage multiple et prend en charge l'héritage multicouche.
Toutes les classes héritent directement ou indirectement de la classe Object. La classe Object n'a pas de classe parent
Les méthodes du constructeur ne peuvent pas être héritées

Remplacements de méthode
Lorsque les sous-classes héritent après avoir été ajouté à une classe parent, il possède automatiquement toutes les propriétés et fonctions héritables de la classe parent. Mais lorsque la sous-classe estime que la méthode de la classe parent n'est pas assez puissante, elle peut réécrire la méthode de la classe parent selon sa propre logique
. Également appelé copie de méthode et écrasement de méthode.
Notes
1. Vous pouvez utiliser @Override pour vérifier si la méthode est remplacée
2. Les autorisations de la méthode de sous-classe doivent être supérieures ou égales aux autorisations du parent classe
3. Recommandation et parent Les méthodes de classe sont les mêmes

Le processus de création des objets de classe parent et des objets de sous-classe
Les objets de classe parent sont générés avant la sous-classe objets
Chaque fois qu'un objet de sous-classe est créé Quand , le constructeur de paramètre vide de la classe parent sera appelé par défaut pour créer l'objet de classe parent (pas le nouvel objet)
En fait, un objet de classe parent est créé dans l'objet classe enfant car la classe enfant veut le contenu de la classe parent
Il est nécessaire d'avoir un tel support spatial de la classe parent
Dans la première ligne de chaque méthode constructeur de la sous-classe, il y a un super() par défaut pour appeler le constructeur de paramètres vides de la classe parent
super(parameter) pour appeler les méthodes de construction de la classe parent

this et super
this : référence à l'objet de cette classe
super : référence à la classe parent dans l'objet de cette classe

this et super
nom de l'attribut Accédez à cette variable membre de classe this. Nom de la méthode (paramètre) Accéder aux autres méthodes de cette classe
this (paramètre) Accéder aux autres constructeurs de cette classe (notez qu'il doit être utilisé dans la première ligne du constructeur) (il suffit de le comprendre)

nom super.property pour accéder aux variables membres de la classe parent (non privées)

nom super.method (paramètre) pour accéder aux méthodes membres de la classe parent (non privées)
super (paramètre) accéder à la classe parent constructeur (non privé) (notez qu'il doit être utilisé dans la première ligne du constructeur)

Remarque : this et super Lors de l'appel du constructeur, il ne peut pas être utilisé en même temps dans le même constructeur, car ils doivent tous deux être définis sur la première ligne.
Lorsque vous appelez le constructeur, vous devez vous assurer qu'il existe ce constructeur avant de pouvoir l'appeler. S'il n'existe pas de tel constructeur, il ne peut pas être appelé.

Classe abstraite Méthode abstraite : Une méthode sans corps de méthode est appelée une méthode abstraite
Classe abstraite : Une classe avec une méthode abstraite doit être une classe abstraite

Utilisation abstraite des classes 1. Les classes abstraites ne peuvent pas créer d'objets
2. Définir des sous-classes pour hériter des classes abstraites
3. Les sous-classes remplacent les méthodes de la classe parent
4. Créer des objets de sous-classe pour appeler des méthodes
Détails de la classe abstraite :
1. Les classes abstraites ne peuvent avoir aucune méthode abstraite
2. Les classes abstraites peuvent avoir des méthodes concrètes
3. Les classes abstraites doivent être une classe parent
4. Les sous-classes doivent réécrire toutes les méthodes abstraites, sinon la sous-classe est également une classe abstraite
5. Les classes abstraites ont des constructeurs et les sous-classes doivent utiliser le constructeur pour attribuer des valeurs aux variables membres
La signification des classes abstraites
Les classes abstraites définissent les propriétés et les comportements les plus élémentaires des objets de classe. Force les sous-classes à implémenter leurs fonctionnalités. Les sous-classes doivent remplacer leurs méthodes abstraites
Définition de la classe abstraite
* Définition de la classe abstraite
* Classe abstraite publique nom de la classe {
*
*
* }

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:
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