zoukankan      html  css  js  c++  java
  • 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 || 点返回首页

  • 相关阅读:
    CF763C Timofey and Remoduling
    CF762E Radio Stations
    CF762D Maximum Path
    CF763B Timofey and Rectangles
    URAL1696 Salary for Robots
    uva10884 Persephone
    LA4273 Post Offices
    SCU3037 Painting the Balls
    poj3375 Network Connection
    Golang zip压缩文件读写操作
  • 原文地址:https://www.cnblogs.com/aeon/p/9976950.html
Copyright © 2011-2022 走看看