访问超类对象
问题描述:
所以我有这个类:访问超类对象
public class ServiceClass {
public static Validator validator;
public ServiceClass() {
if (validator == null) validator = new Validator();
}
}
现在我有一个扩展类:
public class Service1 extends ServiceClass {
public Service1() {
validator.init();
}
}
这是正确的方式来访问验证对象?我是否必须创建超类的ans set方法?我应该使用super.validator.init(); ?
提前谢谢。
答
我会使用getter和setter,因为它们允许您比直接访问元素更好地控制访问方式。
除此之外,是的,这是正确的。
另外:请注意,您使用验证器作为“静态”,这意味着ServiceClass
或任何孩子的每个对象将共享相同的对象(他们不会有每个对象的类),所以要小心你的你这样做。
因为'validator'被声明为静态的,所以如果它调用两次'init'方法会导致麻烦,这取决于它应该做什么。 – SomeJavaGuy