1、父类
package com.example.demo.polymorphismServlet;
/**
* @Description 多态父类
* @Auther gf.x
* @Date 2020/4/8 0:06
*/
public class HttpServlet {
public void service() {
System.out.println("HttpServlet.service()");
doGet();
}
public void doGet() {
System.out.println("HttpServlet.doGet()");
}
}
2、子类
package com.example.demo.polymorphismServlet;
/**
* @Description 多态子类
* @Auther gf.x
* @Date 2020/4/8 0:13
*/
public class MyServlet extends HttpServlet {
public void doGet() {
System.out.println("MyServlet.doGet()");
}
}
3、测试
package com.example.demo.polymorphismServlet;
/**
* @Description 多态测试
* @Auther gf.x
* @Date 2020/4/8 0:16
*/
public class Test {
public static void main(String[] args) {
HttpServlet s = new MyServlet();
s.service();
}
}
运行结果
HttpServlet.service()
MyServlet.doGet()
4、内存分析图
注:
图中的HttpServlet对象和MyServlet对象方法中的隐藏参数this都代表的是最外层的MyServlet对象