[英]In Java, how access a private static attribute of a child instance from parent method?
这是一个例子:
class Parent {
protected int A;
public void displayA() {
System.out.println(A);
}
}
class Child extends Parent {
protected static int A=2;
}
Child intance = new Child();
intance.displayA();
=> return null !!!
从父方法检索子属性的方法是什么?
谢谢 :)
您可以在Child的构造函数中设置A变量:
class Child extends Parent {
// protected static int A=2; // this redeclares the variable -- it's a different variable
public Child() {
A = 2;
}
}
但是我认为您最好给父母的变量一个getter和setter,然后根据需要从孩子或父母那里设置或获取它。 在我看来,这比直接操作字段更好,因为您可以随后监视字段的更改并在更改的数据不合适时采取措施。
其他建议:学习并遵循Java命名规则。 另外,您发布的代码中有很多粗心大意的错误,包括错别字。 如果您要其他人尽力免费帮助您,则并不是要您做同样的事,而是要用真实的代码提出一个体面的问题,以免产生帮助。您比需要的还要困难。
在您的实例中,如果您使用Child类构造函数设置A的值,而不是重新声明变量,则父类应该能够获取该值。
上面的实例的问题在于,您要在子类中重新声明变量,而不仅仅是更改超类中变量的值。
是否有必要将子变量声明为静态? 如果只需要该类变量的值,则可以直接引用它。 但是,有一种更巧妙的方法可以让多个子类设置变量值,并由超类使用该方法:让子类设置所需的值,然后让超类引用该变量(可能使用吸气剂)该子类已设置其值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.