有三种方法可以防止某个类被作出子类:
1.存取控制,类不能标记为private,但是不标记为public的类也只能被同包内的类继承
2.使用修饰符final
3.让类只拥有private的构造程序
第三点的意思是让类全部都是private的方法与实例变量?还是将类的构造函数标记为privarte,那么子类不能新建对象,那么就不能调用方法与取用实例变量,就相当于没有继承?
有三种方法可以防止某个类被作出子类:
1.存取控制,类不能标记为private,但是不标记为public的类也只能被同包内的类继承
2.使用修饰符final
3.让类只拥有private的构造程序
第三点的意思是让类全部都是private的方法与实例变量?还是将类的构造函数标记为privarte,那么子类不能新建对象,那么就不能调用方法与取用实例变量,就相当于没有继承?
收起
让类只拥有private的构造程序
意思是 让该类的构造函数为私有的,其它类没法访问也就没法创建该对象,这就是单例的思想
单例就是为了让一个类只有一个实例
public class A{
public static final A instance = new A();
private A(){
}
}
// 报错, 我们用反证法:假设允许继承 因为想要实例化B 就必须 new 一个B,
// new 一个B 又必须先new 一个 A ,B 继承自A,但是B又不能访问A的private的构造方法,
// 因此不能 实例化出 A,故 B 没法实例化
//
public class B extents A{
}
报告相同问题?