在Java中,static
變量(靜態變量)在繼承中的表現與類的訪問修飾符有關。static
變量屬于類級別變量,而不是實例級別變量。這意味著,無論創建了多少個類的實例,靜態變量都只有一個副本。在繼承關系中,子類可以訪問和使用父類的靜態變量,但是需要注意以下幾點:
class Parent {
public static int staticVar = 10;
}
class Child extends Parent {
public static void main(String[] args) {
System.out.println("Parent static variable: " + Parent.staticVar); // 輸出:Parent static variable: 10
System.out.println("Child static variable: " + Child.staticVar); // 輸出:Child static variable: 10
}
}
class Parent {
public static int staticVar = 10;
}
class Child extends Parent {
public static int staticVar = 20;
}
public class Main {
public static void main(String[] args) {
System.out.println("Parent static variable: " + Parent.staticVar); // 輸出:Parent static variable: 10
System.out.println("Child static variable: " + Child.staticVar); // 輸出:Child static variable: 20
}
}
class Parent {
public static int staticVar = 10;
}
class Child extends Parent {
public static int staticVar = 20;
}
public class Main {
public static void main(String[] args) {
Parent parent = new Parent();
Child child = new Child();
System.out.println("Parent static variable: " + parent.staticVar); // 輸出:Parent static variable: 10
System.out.println("Child static variable: " + child.staticVar); // 輸出:Child static variable: 20
}
}
總之,在Java繼承中,靜態變量屬于類級別變量,子類可以訪問和使用父類的靜態變量,但是子類有自己的靜態變量時,它們之間不會相互影響。靜態變量在繼承中具有傳遞性。