访问超类对象

问题描述:

所以我有这个类:访问超类对象

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(); ?

提前谢谢。

+1

因为'validator'被声明为静态的,所以如果它调用两次'init'方法会导致麻烦,这取决于它应该做什么。 – SomeJavaGuy

我会使用getter和setter,因为它们允许您比直接访问元素更好地控制访问方式。

除此之外,是的,这是正确的。

另外:请注意,您使用验证器作为“静态”,这意味着ServiceClass或任何孩子的每个对象将共享相同的对象(他们不会有每个对象的类),所以要小心你的你这样做。