使用protected 构造方法,是包保护措施,出了这个包,在别的包里面是不可以new这个对象的。 假设class A 的构造函数是protected的
如果在别的包里还想用我这个类的功能,只能是用该类的子类了,创建一个子类B extends A,子类会继承方法。 这里可以使用匿名类。
new A(){}.func1();
但是在此处,调用的方法为public的,如果不是,就不可见了。
但是为什么A的构造函数也是protected,但是可以new呢?
这是因为在new子类对象的时候,在调用子类对象的构造方法时候会先调用父类的构造方法。
子类的构造方法是在类体里面的。在子类的类体里面,对父类的protected变量和方法是可见的。
本文详细解析了Java中使用protected构造方法的意义及其工作原理。介绍了如何通过子类继承来利用这种构造方法,并解释了为什么即使构造方法是受保护的也可以通过创建子类的方式实例化对象。
5363





