3

Javaでは、抽象メソッドが含まれていない場合でも、クラスを抽象として指定できます。この種の抽象クラスの目的は何ですか?

4

2 に答える 2

7

抽象クラスを使用すると、抽象メソッドがない場合でも、派生を強制したり、インスタンスの作成を禁止したりできます。これは、メソッドのデフォルトの実装を持ついくつかの概念の抽象表現である可能性があります。

于 2012-09-18T03:54:42.337 に答える
1

Jordão が指摘したように、抽象クラスを使用して、抽象概念のインスタンス作成を防ぐことができます。コンストラクターでシステム レベルのウィンドウを作成する Window クラスを想像してみてください。 ただし、ModalWindow、ModelessWindow、または DialogWindow のインスタンスのみを許可します。

抽象クラスは、コンストラクター変数を必要とし、サブクラスの保護されたメソッドとフィールドを公開できます。メソッドは、抽象クラスのプライベート インスタンス変数を参照することさえあります。

「継承よりも構成を優先する」という推奨事項については議論の余地がありますが、私の考えでは、抽象メソッドを持たない抽象クラスは、単にサブクラスにとって便利なメソッドの便利なコンテナーではなく、各サブクラスがそのスーパークラスの代わりになるようにすることです。 .

于 2012-09-18T04:11:48.320 に答える