ホームページ > Java > &#&チュートリアル > 抽象クラスにコンストラクターを含めることはできますか?

抽象クラスにコンストラクターを含めることはできますか?

Patricia Arquette
リリース: 2024-12-21 14:09:10
オリジナル
984 人が閲覧しました

Can Abstract Classes Have Constructors?

抽象クラスはコンストラクターを所有できますか?

抽象クラスの抽象的な性質にもかかわらず、抽象クラスはコンストラクターの存在を実際にサポートしています。

抽象クラス コンストラクターの使用法と目的

抽象クラス コンストラクターはさまざまな目的を果たします。

  1. クラス制約の強制: 抽象コンストラクターは、サブクラスが確実に遵守されるようにすることで制約を強制します。特定のルールに従うか、オブジェクトの初期化に必要な最小限のフィールドを提供します。
  2. フィールドの初期化: これらにより、抽象クラスは、すべてのサブクラスが継承して利用する共有フィールドを初期化できます。
  3. オーバーロード: 抽象コンストラクターはコンストラクターのオーバーロードを容易にし、サブクラスが要件に合わせた特定のコンストラクターを定義できるようにします。抽象クラスのコンストラクターによって提供される共有フィールドの恩恵を受けます。

次のコード スニペットを考えてみましょう。

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);
    }
}
ログイン後にコピー

Inこの例では、抽象クラス Product は、multiplyBy フィールドを設定するコンストラクターを持っています。サブクラス TimesTwo および TimesWhat は、カスタマイズされた初期化を提供するためにこのコンストラクターをオーバーライドします。

注:

抽象クラスはデフォルトのコンストラクターを持たないことに注意することが重要です。したがって、サブクラスは明示的に行う必要があります。 super.

を使用して親コンストラクターを呼び出します。

以上が抽象クラスにコンストラクターを含めることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート