• 047_面向对象_20_内存分析深化


     一、演示示例(以往后我们学到的servlet为例)  

    package edu.aeon.test;
    /**
     * [说明]:测试多态(servlet)
     * @author aeon
     *
     */
    public class HttpServlet {
        public void service(){
            System.out.println("HttpServlet.service()");
            doGet();//其实和this.doGet()一样、所以此处的this指向谁调用谁的
        }
        public void doGet(){
            System.out.println("HttpServlet.doGet()");
        }
    }
    package edu.aeon.test;
    /**
     * [说明]:重写edu.aeon.test.HttpServlet类中的service()方法(因为多态基于继承(重写)、父类引用指向子类对象)
     * @author aeon
     *
     */
    public class MyServlet extends HttpServlet {
        @Override
        public void doGet() {
            System.out.println("MyServlet.doGet()");
        }
    }
    package edu.aeon.test;
    /**
     * [说明]:测试多态
     * @author aeon
     *
     */
    public class Test {
    
        public static void main(String[] args) {
            HttpServlet httpServlet = new MyServlet();//父类引用指向子类对象
            httpServlet.service();
        }
    }

    测试结果截图:

      

       本示例在内存中的结构图:

      

    结论:

        通过HttpServlet httpServlet = new MyServlet();这行代码我们可以得知父类(HttpServlet )的引用指向子类(MyServlet)的对象、那么这个对象本身是子类对象、所以此处的this代表的是子类MyServlet对象(实例)

        通过httpServlet.service();因为个方法里面有两个隐式参数this,super(不知道的同学可以看前面)所以所调用的方法均基于this指向的当前对象为基础来调用的。

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    教你Python3实现12306火车票自动抢票,小白必学
    Spring Security 中如何快速查看登录 IP地址等信息?一招搞定
    方程组及其解的判定
    向量空间
    极大无关组和向量组等价
    向量组的线性相关与线性无关
    向量间的线性关系
    向量的概念和运算
    矩阵的秩和秩的性质
    利用初等变换求逆矩阵和解矩阵方程
  • 原文地址:https://www.cnblogs.com/aeon/p/9976950.html
Copyright © 2020-2023  润新知