首页 > 代码库 > 继承类中static数据值

继承类中static数据值

 1 class A{
 2     static int num = 1;
 3     public static void Display(){
 4         System.out.println( num );
 5     }
 6 }
 7 
 8 class B extends A{
 9     static int num = 2;
10     public static void Display(){
11         System.out.println( num );
12     }
13 }
14 
15 class C extends A{
16     static int num = 3;
17 }
18 
19 class D extends B{
20     static int num = 4;
21 }
22 
23 public class StaticTest {
24     public static void main(String[] args){
25         A.Display();
26         B.Display();
27         C.Display();
28         D.Display();
29     }
30 }

基类中,静态值和静态函数可以被覆盖。但如果要访问继承类中的继承类的值,需要重写方法,不然访问的就是基类的值。

运行结果不是1,2,3,4,而是1,2,1,2。