„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Können abstrakte Klassen Konstruktoren haben?

Können abstrakte Klassen Konstruktoren haben?

Gepostet am 2025-02-06
Durchsuche:783

Can Abstract Classes Have Constructors?

Können abstrakte Klassen Konstruktoren besitzen?

nutzung und Zwecke der abstrakten Klassenkonstruktoren

Ein abstrakter Klassenkonstruktor dient verschiedenen Zwecke:

Durchsetzung von Klassenbeschränkungen:
    abstrakte Konstruktoren setzen Einschränkungen durch, indem sie sicherstellen, dass Unterklassen bestimmte Regeln einhalten oder minimale Felder bereitstellen Unterklassen erben und nutzen.
  1. Überlastung:
  2. Abstrakte Konstruktoren erleichtern die Überlastung von Konstruktoren und ermöglichen es, Unterklassen zu definieren, die auf ihre Anforderungen zugeschnitten sind, und profitieren dennoch von den freigegebenen Fields, die durch den Konstruktor der Abstraktklassen bereitgestellt werden.
  3. example
  4. betrachten den folgenden Code -Snippet:
abstraktes Klassenprodukt { int multiplyby; öffentliches Produkt (int multiplyby) { this.multiplyby = multiplyby; } public int mutiply (int val) { MultiplyByBy * val return; } } Klassenstimestwo erweitert das Produkt { öffentliches Timestwo () { Super (2); } } Klasse TimesWhes erweitert das Produkt { public TimesWhat (int was) { Super (was); } }

In diesem Beispiel besitzt das abstrakte Klassenprodukt einen Konstruktor, der das Feld Multiplyby festlegt. Die Unterklassen Timestwo und Times, die diesen Konstruktor überschrieben, um eine angepasste Initialisierung bereitzustellen.

Hinweis:

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);
    }
}
Es ist entscheidend zu beachten, dass abstrakte Klassen keine Standardkonstruktoren besitzen müssen, sodass Subklassen explizit explizit haben müssen. Rufen Sie den übergeordneten Konstruktor mit Super.

auf.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3