静态/最终的java类?

Dar*_*ian 4 java singleton instance-variables

我想强制在我的父类的任何扩展类上实现单例模式.也就是说,我只想要每个子类的一个实例(可以通过Child.INSTANCE或类似的东西访问).

理想情况下,我想要创建Child.INSTANCE对象,然后不要生成其他类型为Parent的对象.

目前我通过以下方式获取我的实例:

public class Child extends Parent {
    public static final Child INSTANCE = new Child();
    ....
Run Code Online (Sandbox Code Playgroud)

我想知道,java类可以以某种方式变成静态或某种东西吗?

谢谢=]

Chr*_*ung 9

您的子课程集是固定的吗?如果是这样,请考虑使用enum.

public enum Parent {
    CHILD1 {
        // class definition goes here
    },

    CHILD2 {
        // class definition goes here
    };

    // common definitions go here
}
Run Code Online (Sandbox Code Playgroud)

由于OP提到了关于状态模式,这里有两个enum基于状态的机器的例子:一个简单的一个复杂的.