仔细看看thinking in java多态那一章吧

解决方案 »

  1.   

    abstract class father
    {
     void test();
    }
    class son extends father
    {
     void test(){System.out.println("hello");}
    }father f=new son();
    f.test();看动了吗
      

  2.   

    redlaputa(吾心如秋思,爱随雨后归),你写的我是懂了,但我说的是接口,就拿下面我们经常会写的代码说说吧public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
     HttpSession session = request.getSession();
     //...
    }
    在这里request、session 都是两个接口类型变量,request的方法并没有实现,它怎么会
    返回一个HttpSession 接口呢,而你举的例子自然好理解,因为是用子类实例化的,而在这
    里我就觉得不好理解了,因为接口的方法应该是要通过类来实现的,而request是一个接口,
    即便是类,getSession方法也是一个没有实现体的抽象函数,所以我还不太明白,希望继续
    赐教,多谢1
      

  3.   

    你什么说的"Servlet中可以定义成相应变量直接使用",这是因为在HTTP服务器程序运行时,WEB容器会自动由底层的HTTP请求头生成这些,然后作为参数调用你的Servlet.
    如果想知道更详细
    mailto:[email protected]
    我写过部分实现J2EE的HTTP服务器
      

  4.   

    这里用到了upcast,注意,调用这个doGet时,传入的是分别实现HttpServletRequest, HttpServletResponse的两个接口的类的实例
      

  5.   

    因为接口和实现类共同含有这个getSession()方法,所以当然可以调用,另外upcast是很正常的,这些在java编程中是经常遇到的问题,你看看<Thinking in java>就知道了
      

  6.   

    郁闷,刚才竟然不让我发文,非要分开发才行,就是因为这句
    “为接口和实现类共同含有这个getSession()方法”
                    ~~原来这个字前边有个“中”,不去掉就不让发
      

  7.   

    多谢 moke33(Mr.Li ★ 我爱冰冰)和 alabaza(一再沉醉) 两位大侠