すべてのコンストラクターがプライベートとして宣言されているクラスがあるとします。
例えば。:
public class This {
private This () { }
public someMethod( ){
// something here
}
// some more-- no other constructors
}
私の知る限り、すべてのコンストラクターを非公開にすることは、クラス「This」をfinalとして宣言することに似ているため、拡張できません。
しかし、私が受け取っている Eclipse メッセージは、これが可能であるという印象を私に与えています.all-constructors-private クラスは拡張可能です。これを見てください:
このクラスを次のようなもので拡張しようとすると
public class That extends This {
...
}
Eclipse で次のエラーが表示されます。
独自のコンストラクターを定義する場合:
public class That extends This {
That () {..}
...
}
今回は、「暗黙のスーパーコンストラクター This() は、デフォルトのコンストラクターでは表示されません。別のコンストラクターを明示的に呼び出す必要があります。」
これを回避する方法はありますか? すべてのコンストラクターがプライベートであるクラスを拡張する方法はありますか?
はいの場合、どのように?
いいえの場合、クラスが拡張されないようにすることの違いは何ですか?
注: Java のコンストラクターはプライベートにできますか? 他のいくつかの議論の中で。