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

}

但是我的类 a 没有继承到 b 如何

4

2 回答 2

9

你的问题到底是什么?如何防止类a被子类化,但不产生类a final

制作 class 的所有构造函数a private。提供一个工厂方法来创建a.

class a {
    // Private constructor
    private a() {
    }

    // Factory method
    public static a createA() {
        return new a();
    }
}
于 2012-07-20T12:38:33.127 回答
2

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

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

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

于 2012-07-20T12:38:59.980 回答