防止实例化和继承Java类

HoN*_*uRu 0 java inheritance instance

我被要求修改一个简单的类,以使其无法实例化和继承。我对于如何使用abstract而不被实例化以及final而不被继承感到困惑。

我应该怎么写这样的课?

提前致谢。

ern*_*t_k 9

一个类不能同时是final和abstract。您可以通过隐藏构造函数来防止实例化,并引发异常以防止通过反射进行实例化。

看起来像这样:

final class MyClass {
    private MyClass() {
        throw new IllegalStateException("Cannot be instantiated"); //some exception
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

// final can not be inherited
// only static methods will work on this class
final class FrozenClass {
  private FrozenClass() {
    // can not be instantiated
  }
}
Run Code Online (Sandbox Code Playgroud)