Java で、クラスが特定のサブクラスのセットを持ち、他のクラスを持たないようにすることは可能ですか? 例えば:
public abstract class A {}
public final class B extends A {}
public final class C extends A {}
public final class D extends A {}
A の他のサブクラスを作成できないように強制することはできますか?
Java で、クラスが特定のサブクラスのセットを持ち、他のクラスを持たないようにすることは可能ですか? 例えば:
public abstract class A {}
public final class B extends A {}
public final class C extends A {}
public final class D extends A {}
A の他のサブクラスを作成できないように強制することはできますか?
クラスA
に、パッケージ レベルのアクセシビリティを備えたコンストラクターを指定します (他のコンストラクターは指定しません)。
Dave L. さん、他のコンストラクターについて少し説明していただきありがとうございます。
おそらく列挙型 (Java >= 1.5) が必要です。列挙型は、一連の固定値を持つことができます。また、クラスの優れた機能をすべて備えています。フィールドとプロパティを持つことができ、インターフェイスを実装させることができます。列挙型は拡張できません。
例:
enum A {
B,
C,
D;
public int someField;
public void someMethod() {
}
}
クラスA、B、C、Dを別のパッケージに入れ、クラスAを非公開にすることができます。