héritage orienté objet java

Orienté objet Java

Auteur q: 2835916127

1. Héritage

1. Mise en œuvre de l'héritage

  • Concept d'héritage:

    • L'héritage est l'une des trois principales caractéristiques de l'orientation objet. L'héritage peut donner à la sous-classe les attributs et les méthodes de la classe parente, la redéfinir dans la sous-classe et ajouter de nouvelles méthodes à la sous-classe.
  • Mettre en œuvre le format hérité

格式 : class 子类 extends 父类{
    
     }
  • Par exemple:
class Dog extends Animal {
    
     }

Je ne donnerai pas d'exemple détaillé ici

  • Avantages de l'héritage:

    • Réutilisation du code améliorée (les attributs de plusieurs classes ne doivent être déclarés que dans la classe de base)
    • Améliorez la maintenabilité du code (lorsque vous avez besoin de modifier, vous n'avez besoin de modifier qu'un point)
  • Inconvénients de l'héritage

    • L'héritage crée une relation entre la sous-classe et la classe parente, et le couplage de la classe est amélioré. Lorsque la classe parente doit être modifiée, la sous-classe doit apporter des modifications, ce qui affaiblit l'indépendance de la sous-classe.
  • Utilisation de l'héritage

    • Pour utiliser l'héritage, vous devez déterminer s'il existe une relation est ... une relation entre la classe et la classe, et vous ne pouvez pas utiliser l'héritage aveuglément
      • La relation de est ... a: qui est une sorte de qui, par exemple: l'enseignant et l'élève sont une sorte d'humain, cette personne est le parent, et l'élève et l'enseignant sont les sous-catégories

2. Caractéristiques d'accès héritées

Caractéristiques d'accès variables

  • Pour accéder à une variable dans une sous-classe, le principe de proximité est adopté
  1. Rechercher dans la portée locale de la sous-classe
  2. Rechercher dans le périmètre des membres de la sous-classe
  3. Rechercher dans la méthode membre de la classe parent
  4. Signaler une erreur si aucun des trois n’est trouvé (le père du père n’est pas pris en compte)

Accéder aux caractéristiques de l'objet

  • créer

ceci et super

  • this: une référence à l'objet de classe courant

  • super: référence à l'objet parent

  • Constructeur:

    • ceci (paramètre 1, paramètre 2 ...)
    • super (paramètre 1, paramètre 2 ...)

Remarque: le constructeur super () de la classe parent est appelé par défaut lors de la création de la sous-classe

  1. Lors de la création d'un objet de sous-classe, si vous n'appelez pas explicitement le constructeur de la classe parente, la méthode super () de la classe parente sera appelée par défaut
  2. Si vous avez besoin d'appeler le constructeur de la classe parent, vous devez mettre super (paramètre 1, paramètre 2 ...) dans la première phrase du constructeur de sous-classe
  3. Il n'est pas possible d'appeler la structure de classe parente plusieurs fois pour une sous-classe.
    Écriture recommandée: Apportez la structure par défaut lors de la création de la classe

Réécriture de méthode:

  • Concept de remplacement: la même déclaration de méthode que la classe parente est écrite dans la sous-classe, c'est-à-dire que le nom de la méthode et le type de paramètre sont les mêmes
  • Scénario d'application: lorsque la sous-classe a besoin des fonctions de la classe parente et qu'une méthode de la sous-classe a sa propre méthode unique, vous pouvez remplacer la méthode de la classe parente à ce moment
  • Vous pouvez utiliser l'annotation @Override pour vérifier si la méthode déclarée dans la sous-classe provient de la classe parente et lire une note de fonction [vérification]
    :
    1. Les méthodes privées de la classe parente ne peuvent pas être remplacées (les membres privés et les méthodes de la classe parente ne peuvent pas être hérités par les sous-classes)
    2. Les droits d'accès de la sous-classe ne peuvent pas être inférieurs à la classe parent (public> protected> default (pas de permission en écriture)> private)

public class Fu {
    
    
    private void show() {
    
    
        System.out.println("Fu中show()方法被调用");
    }

    void method() {
    
    
        System.out.println("Fu中method()方法被调用");
    }
}

public class Zi extends Fu {
    
    

    /* 编译【出错】,子类不能重写父类私有的方法*/
    @Override
    private void show() {
    
    
        System.out.println("Zi中show()方法被调用");
    }
   
    /* 编译【出错】,子类重写父类方法的时候,访问权限需要大于等于父类 */
    @Override
    private void method() {
    
    
        System.out.println("Zi中method()方法被调用");
    }

    /* 编译【通过】,子类重写父类方法的时候,访问权限需要大于等于父类 */
    @Override
    public void method() {
    
    
        System.out.println("Zi中method()方法被调用");
    }
}

Précautions:

  • Java ne prend en charge que l'héritage unique (un père avec plusieurs fils)

  • Les classes en Java prennent en charge l'héritage multicouche

  • Faites attention à la différence entre la réécriture et la surcharge

    • Réécrire: la sous-classe remplace la méthode de la classe parente
    • Surcharge: dans la même classe, le nom de la méthode est le même, mais le nombre ou les types de paramètres sont différents

final

  • Final représente la signification finale, qui peut être des méthodes membres, des variables membres et des classes

    • classe modifiée finale
    • Classe modifiée finale: cette classe ne peut pas être héritée (ne peut pas avoir de sous-classes, mais peut avoir des classes parentes)
    • Méthode de membre modifiée finale: cette méthode ne peut pas être remplacée
    • Variable membre modifiée finale: indique que la variable est une constante et ne peut pas être réaffectée
  • modification finale des types de données de base

    • Type de données de base modifié final, sa valeur ne peut pas être modifiée
    • Type de référence modifié final: la valeur d'adresse du type de référence ne peut pas être modifiée, mais le contenu de l'adresse peut être modifié
  • Par exemple

public static void main(String[] args){
    
    
    final Student s = new Student(23);
  	s = new Student(24);  // 错误
 	s.setAge(24);  // 正确
}

statique

  • Le concept: statique est une signification statique, peut être modifié des méthodes membres et des variables membres

  • Caractéristiques:

    • Partagé par tous les objets de la classe, c'est aussi une condition pour juger de l'utilisation de statique
    • Peut être appelé par le nom de classe ( recommandé )
      caractéristiques d'accès statique
  • Méthode de membre non statique
    • Peut accéder aux variables de membre statiques
    • Peut accéder aux variables de membre non statiques
    • Peut accéder aux méthodes des membres statiques
    • Peut accéder aux méthodes membres non statiques
  • Méthode de membre statique
    • Peut accéder aux variables de membre statiques
    • Peut accéder aux méthodes des membres statiques
  • Résumé en une phrase:
    • Les méthodes membres statiques ne peuvent accéder qu'aux membres statiques

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42143994/article/details/109864102
conseillé
Classement