java static继承
时间: 2023-09-14 07:09:20 浏览: 47
在 Java 中,子类可以继承父类中的静态变量和静态方法。当子类继承父类时,会创建一个新的子类对象,但是父类中的静态成员只会在内存中存在一份副本,因此子类共享与父类相同的静态成员。
例如,如果父类有一个静态变量,子类可以通过父类名来访问该变量,如下所示:
```
public class Parent {
public static int num = 1;
}
public class Child extends Parent {
public void printNum() {
System.out.println(Parent.num); // 子类访问父类静态变量
}
}
```
子类还可以覆盖父类的静态方法,但是不能重写。如果子类中定义了与父类中相同的静态方法,则会隐藏父类的静态方法。
```
public class Parent {
public static void print() {
System.out.println("Parent");
}
}
public class Child extends Parent {
public static void print() {
System.out.println("Child");
}
}
public static void main(String[] args) {
Parent.print(); // 输出 Parent
Child.print(); // 输出 Child
Parent p = new Child();
p.print(); // 输出 Parent
}
```
在上面的例子中,由于父类和子类都有一个名为 print 的静态方法,因此子类隐藏了父类的方法。当通过父类类型的引用变量来调用 print 方法时,会调用父类的方法。