java多态内存分析深化模拟servlet中方法的调用实例介绍



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()方法。