我有一个带有静态变量Test
的超类a
,我还创建了一个子类Test1
,我可以从中访问超类静态变量。
这是一种有效的方法吗?任何解释都非常感谢。
public class Test {
public static String a = "";
Test() {
a += "testadd";
}
}
public class Test1 extends Test {
public Test1() {
a += "test1add";
}
public static void main(String args[]){
Test1 test1 = new Test1();
System.out.println(a);
}
}
答案 0 :(得分:1)
静态变量是类变量,您可以使用classname.variablename访问它们。
public class Test {
public static String a = "";
Test() {
a += "testadd";
}
}
public class Test1 extends Test {
public Test1() {
Test.a += "test1add";
}
public static void main(String args[]) {
Test1 test1 = new Test1();
System.out.println(a);
}
}
答案 1 :(得分:1)
您可以使用subclass object.superClassStaticField
或SuperClassName.superClassStaticField
访问它。 Latter是访问静态变量的静态方法。
例如:
public class SuperClassStaticVariable {
public static void main(String[] args) {
B b = new B();
b.a = 2; // works but compiler warning that it should be accessed as static way
A.a = 2; // ok
}
}
class A {
static int a;
}
class B extends A {}