父类静态方法里怎么调用子类的变量
时间: 2023-10-02 11:08:27 浏览: 84
父类无法直接访问子类的变量,因为子类可能会覆盖父类的变量,导致子类的变量与父类的变量同名但是值不同。但是,可以通过在子类中定义一个静态方法,来获取子类的变量并返回给父类的静态方法使用。
例如:
```java
class ParentClass {
public static void staticMethod() {
int childVariable = ChildClass.getChildVariable(); // 调用子类的静态方法获取变量
System.out.println("Child variable = " + childVariable);
}
}
class ChildClass extends ParentClass {
public static int childVariable = 1;
public static int getChildVariable() { // 子类定义一个静态方法获取变量
return childVariable;
}
}
public class Main {
public static void main(String[] args) {
ChildClass.staticMethod(); // 调用子类的静态方法
}
}
```
输出结果:
```
Child variable = 1
```
可以看到,在父类的静态方法 `staticMethod` 中,我们通过调用子类的静态方法 `getChildVariable` 来获取子类的变量,并输出该变量的值。注意,子类的静态方法必须是公开的(public),否则父类无法访问该方法。
阅读全文