如何在不使用final关键字的情况下避免继承我们的类?

时间:2012-07-20 12:34:42

标签: java class

class a
{
----
}
class b extends a
{

}

但是我的班级a没有继承到b怎么样

2 个答案:

答案 0 :(得分:9)

你的问题究竟是什么?如何防止类a被子类化,但没有创建类a final

制作班级a private的所有构造函数。提供用于创建a

实例的工厂方法
class a {
    // Private constructor
    private a() {
    }

    // Factory method
    public static a createA() {
        return new a();
    }
}

答案 1 :(得分:2)

在类构造函数中使用以下内容:

if (this.getClass() != A.class) {
    throw new RuntimeException("Subclassing not allowed");
}

但是使用这种方式,您将在运行时限制继承。