zoukankan      html  css  js  c++  java
  • java学习(二)多态中成员变量详解

    今天我总结了一下java多态中成员变量的赋值与调用

    举一个我当初做过的小案例:

    class Fu{
        int num;
        void show(){}
    }
    
    class Zi extends Fu{
        //int num;
        public Zi(int num){
            this.num = num;
        }
    
        public void show(){
            System.out.println("Zi:" + num);
        }
    }
    public class Demo {
        public static void main(String[] args) {
            Fu a = new Zi(10);
            System.out.println(a.num);
            a.show();
        }
    }

    1.首先先分析一下,当Zi类对象被创建出来时,在堆中给该对象分配了一块内存空间,它整个代表this,里面有一块空间是super,

    (一)2.在给num赋值的时候先找它自身,如果在Zi类中也定义了一个num,则给它自己的num赋值,

    3.而通过多态a.num调用的时候直接找的是它里面的super,所以输出结果应为0和10

    (二)2.在给num赋值的时候先找它自身,如果在Zi类中没有定义num,则找它里面super的num赋值,因为它继承了Fu类,所以show()方法里的num也为10

    3.而通过多态a.num调用的时候直接找的是它里面的super,所以输出结果应为10和10

    (有理解不对的地方,还请大家指点,一起交流探讨)

  • 相关阅读:
    lr http_get访问webservice
    lr http_post请求webservice
    快速幂(fast power)
    运算符重载
    1010 Radix 二分
    1054 The Dominant Color
    1042 Shuffling Machine
    1059 Prime Factors
    1061 Dating
    1078 Hashing
  • 原文地址:https://www.cnblogs.com/cxsy/p/5360861.html
Copyright © 2011-2022 走看看