5

Javaでのオブジェクトのインスタンス化を防ぎたい場合は、いくつかのアプローチを使用できますが、その中で最も明白なものは次のとおりです。

  1. 抽象キーワード
  2. プライベート/保護されたコンストラクター

クラスに抽象メソッドが含まれておらず、オブジェクトの作成を防ぐためにabstractキーワードを使用するとします。このアプローチは正しくありませんか(つまり、構文の正確さではなく、セマンティックです)?または、そのような場合はプライベートコンストラクターを使用する方が良いですか?

ありがとう

UPD クラスは、抽象メソッドは含まれていませんが、他のクラスの基本クラスになります。私の場合は、統合/単体テストのグループで使用できるいくつかの一般的なデータとユーティリティメソッドを含む「AbstractTestBase」です。

4

1 に答える 1

5

クラスをサブクラスとして使用したいので、提案「プライベートコンストラクターを持つ最終クラス」は明らかに機能しないので、「抽象的」な方法をとる必要があります。'abstract class'の定義から、これは正当なものです。定義はあなたが望むものを正確に述べているからです。

抽象クラスは、抽象として宣言されたクラスです。抽象メソッドが含まれる場合と含まれない場合があります。抽象クラスはインスタンス化できませんが、サブクラス化することはできます。

http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

于 2013-01-06T14:49:20.337 に答える