多态中的成员访问特点

 1 public class demo {
 2 public static void main(String[] args) {
 3     Fu f = new Zi();
 4     f.show();
 5     System.out.println(f.num);
 6     f.function();
 7 }
 8 static class Fu {
 9     public int num = 100;
10     public void show() {
11         System.out.println("show fu");
12     }
13     public static void function() {
14         System.out.println("function fu");
15     }
16 }
17 
18 static class Zi extends Fu {
19     public int num = 1000;
20     public int num2 = 200;
21     public void show() {
22         System.out.println("show zi");
23     }
24     public void method() {
25         System.out.println("method zi");
26     }
27     public static void function() {
28         System.out.println("function zi");
29     }
30 }
31 }

运行结果:
show zi
100
function fu

多态中的成员访问特点:
        A:成员变量
            编译看左边,运行看左边。
        B:构造方法
            创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。
        C:成员方法
            编译看左边,运行看右边。
        D:静态方法
            编译看左边,运行看左边。
            (静态和类相关,算不上重写,所以,访问还是左边的)
            
        由于成员方法存在方法重写,所以它运行看右边。

原文地址:https://www.cnblogs.com/lsymove/p/11222378.html