java多态内存分析深化模拟servlet中方法的调用实例介绍。本次只是模拟一下servlet,主要目的是说明多态。
HttpServlet.java源码:
package myServlet;
public class HttpServlet {
public void service(){
System.out.println(“HttpServlet.service()”);
this.doGet();
}
public void doGet(){
System.out.println(“HttpServlet.doGet()”);
}
}
MyServlet.java继承HttpServlet.java
package myServlet;
public class MyServlet extends HttpServlet {
public void doGet(){
System.out.println(“MyServlet.doGet()”);
}
}
Test测试类:
package myServlet;
public class Test {
public static void main(String[] args) {
HttpServlet s = new MyServlet();
s.service();
}
}
运行的结果:
HttpServlet.service()
MyServlet.doGet()
以下是java多态内存分析图:
以上的方法区内存分析就不说了,您可以查看前面有关java多态内存分析的内容。当new MyServlet()时候,new了object,然后是HttpServlet。而MyServlet中的this就是指本实例。因此s.service()调用的就是MyServlet中的service()方法。