"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les classes abstraites peuvent-elles avoir des constructeurs?

Les classes abstraites peuvent-elles avoir des constructeurs?

Publié le 2025-02-06
Parcourir:982

Can Abstract Classes Have Constructors?

Les classes abstraites peuvent-elles posséder des constructeurs?

Malgré la nature abstraite des classes abstraites, elles soutiennent en effet la présence de constructeurs.

Utilisation et objectifs des constructeurs de classe abstraits

Un constructeur de classe abstrait sert à diverses fins:

  1. Application des contraintes de classe: Les constructeurs abstraits appliquent les contraintes en veillant à ce que les sous-classes adhèrent à certaines règles ou fournissent des champs minimaux nécessaires à l'initialisation des objets.
  2. Initialisation des champs: Ils permettent aux classes abstraites d'initialiser les champs partagés qui tous Les sous-classes héritent et utilisent.
  3. Surcharge: Les constructeurs abstraits facilitent la surcharge du constructeur, permettant aux sous-classes de définir les constructeurs spécifiques adaptés à leurs besoins, tout en bénéficiant des champs partagés fournis par le constructeur de la classe abstrait.

Exemple

Considérez l'extrait de code suivant:

abstract class Product { 
    int multiplyBy;
    public Product( int multiplyBy ) {
        this.multiplyBy = multiplyBy;
    }

    public int mutiply(int val) {
       return multiplyBy * val;
    }
}

class TimesTwo extends Product {
    public TimesTwo() {
        super(2);
    }
}

class TimesWhat extends Product {
    public TimesWhat(int what) {
        super(what);
    }
}

Dans cet exemple, le produit de classe abstrait possède un constructeur qui définit le champ multiplyby. Les sous-classes Timestwo et Timeswhat remplacer ce constructeur pour fournir une initialisation personnalisée.

Remarque:

Il est crucial de noter que les classes abstraites ne possèdent pas des constructeurs par défaut, donc les sous-classes doivent explicitement Invoquez le constructeur parent à l'aide de super.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3