7

Java で、クラスが特定のサブクラスのセットを持ち、他のクラスを持たないようにすることは可能ですか? 例えば:

public abstract class A {}
public final class B extends A {}
public final class C extends A {}
public final class D extends A {}

A の他のサブクラスを作成できないように強制することはできますか?

4

4 に答える 4

4

クラスAに、パッケージ レベルのアクセシビリティを備えたコンストラクターを指定します (他のコンストラクターは指定しません)。

Dave L. さん、他のコンストラクターについて少し説明していただきありがとうございます。

于 2008-10-04T03:17:50.457 に答える
3

おそらく列挙型 (Java >= 1.5) が必要です。列挙型は、一連の固定値を持つことができます。また、クラスの優れた機能をすべて備えています。フィールドとプロパティを持つことができ、インターフェイスを実装させることができます。列挙型は拡張できません。

例:

enum A {

  B,
  C,
  D;

  public int someField;

  public void someMethod() {
  }


}
于 2008-10-04T03:21:19.373 に答える
0

クラスA、B、C、Dを別のパッケージに入れ、クラスAを非公開にすることができます。

于 2008-10-04T03:18:09.753 に答える