代码之家  ›  专栏  ›  技术社区  ›  Apocalisp

在Java中有没有实现代数类型的方法?

  •  6
  • Apocalisp  · 技术社区  · 16 年前

    在Java中,是否有可能强制一个类有一个特定的子类集合,而没有其他类呢?例如:

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

    我能以某种方式强制不创建的其他子类吗?

    3 回复  |  直到 16 年前
        1
  •  4
  •   Mark Cidade    16 年前

    授课 A 具有包级可访问性的构造函数(没有其他构造函数)。

    谢谢,戴夫L.,关于没有其他的构造器。

        2
  •  3
  •   asterite    16 年前

    您可能需要一个枚举(Java≫=1.5)。枚举类型可以有一组固定值。它具有类的所有优点:它们可以拥有字段和属性,并可以使它们实现接口。不能扩展枚举。

    例子:

    enum A {
    
      B,
      C,
      D;
    
      public int someField;
    
      public void someMethod() {
      }
    
    
    }
    
        3
  •  0
  •   Jan Gressmann    16 年前

    你可以把A、B、C、D类放在一个单独的包里,使A类不公开。

    推荐文章