防止Java类被实例化和继承
我被要求修改一个简单的类,这样它就不能被实例化和继承。 我对如何使用抽象表示未被实例化和final表示未被继承感到困惑 我该怎么写这样的课呢防止Java类被实例化和继承,java,inheritance,instance,Java,Inheritance,Instance,我被要求修改一个简单的类,这样它就不能被实例化和继承。 我对如何使用抽象表示未被实例化和final表示未被继承感到困惑 我该怎么写这样的课呢 提前感谢。一门课不能既是最终的,又是抽象的。您可以通过隐藏构造函数并引发异常来防止通过反射实例化来防止实例化 看起来是这样的: final class MyClass { private MyClass() { throw new IllegalStateException("Cannot be instantiated"); //
提前感谢。一门课不能既是最终的,又是抽象的。您可以通过隐藏构造函数并引发异常来防止通过反射实例化来防止实例化 看起来是这样的:
final class MyClass {
private MyClass() {
throw new IllegalStateException("Cannot be instantiated"); //some exception
}
}
因此,您必须使类成为最终类,并添加一个私有构造函数: 看看这个例子:
final class uninstantiable {
private uninstantiable() {
}
}
因此,现在无论何时尝试实例化新对象,它都会出错classname
在packagename
中具有私有访问权限
final class uninstantiable {
private uninstantiable() {
}
}