日期:2014-05-20  浏览次数:20861 次

关于Java继承类解惑
问题简述:
父类:AbstractExtServlet(抽象类) 是servlet类型,里面包含 doGet() 和 doPost()方法,定义一个抽象方法
protected abstract String doOper(String _oper, HashMap<String, String[]> map);
父类中 doPost() 方法直接调用 doOper(_oper,map)方法

子类:ChildrenExtServlet 重写方法 public String doOper(String _oper, HashMap<String, String[]> map),并不包含doGet()和doPost() 

问题:页面跳转到ChildrenExtServlet类,传递参数 _oper,map 那么是不是经过父类AbstractExtServlet的doPost()中 的 doOper(_oper,map)方法,然后调用子类中的 doOper(_oper,map),进行下一步处理。原理是什么/

------解决方案--------------------
子继承了父亲 如果子 找不到的方法 会从父类里找 向上遍历
------解决方案--------------------
框架会自动调用Servlet类的doPost或doGet方法
子类没有重写这些方法,就会调用父类的方法
父类的doPost会调用doOper方法,因为子类重写了doOper方法,所以问问子类Servlet的时候就会调用子类的doOper方法

------解决方案--------------------
因为子类中没有doPost方法所以会调用父类的doPost方法,当父类的doPost方法调用父类的doOper方法是发现已被子类覆盖,所以就返回来调用子类的doOper方法,就这么个过程.