建议看一下javax.servlet.http.HttpServlet的继续关系在JB里看看UML图吧

解决方案 »

  1.   

    abstract class 不是 interface,
    它也可以有具体的实现,只是
    你无法用它来直接建立 Object。
      

  2.   

    楼上的不知所云,说什么呢?
    GET或者POST方法用得最多,但它们一般情况下不会都被调用到。所以按需要override一个就够了。
    父类的GET或者POST方法是空的。你要是不override当然可以通过编译,只是这样的话你的servlet什么都做不了。
      

  3.   

    就是alienbat(死灵巫师)说的阿
    抽象类HttpServlet的方法都是空的
    没有实现的
      

  4.   

    抽象类HttpServlet的方法都是空的
    没有实现的,你必须自己实现,因为
    这些方法并不是abstract的,所以
    你可以不使用,也可以编译。
      

  5.   

    谢谢各位,我自己没把问题说清楚
     楼上netcobol(初学者)的意思是HttpServlet没有abstract的方法,那他还是不是
     abstract类啊?
     这和 dinosaur_cl(慧剑)讲的
    “abstract class 不是 interface,
     它也可以有具体的实现,只是
     你无法用它来直接建立 Object。”
     好象有些冲突。
    我搞不懂的是:继承自abstract类的子类如果没有实现所有的abstract方法,那这个子类
    可以不加关键字abstract吗?这个子类与一般的类有什么区别啊?
    谢谢大家!
      

  6.   

    "继承自abstract类的子类如果没有实现所有的abstract方法,那这个子类
    可以不加关键字abstract吗?" 写个小程序test 一下就是了,有abstract的方法就是abstract class 吧. 当然你只是把方法的关键字"abstract"去掉而没有加具体的东东...
      

  7.   

    在jb中查HttpServlet的uml可以看到doGet等方法是有内容的,并不是什么也没有,  HttpServlet中我没发现有abstract的方法,就只有HttpServlet是abstract的
    re honkyjiang(老蒋):我会试的,谢谢
      

  8.   

    to楼主:
    我搞不懂的是:继承自abstract类的子类如果没有实现所有的abstract方法,那这个子类
    可以不加关键字abstract吗?这个子类与一般的类有什么区别啊?
    一个字类如果继承于一个Abstract Class,但如果他们实现父类的所有的Abstract方法,那,在Java里是不允许他为具体类的。
    也就是说,它还必须被声明为抽象类!
      

  9.   

    to leemassn:
     “但如果他们实现父类的所有的Abstract方法“有笔误,呵呵
    应该加上“没有”吧:)
    我试过了,的确如leemaassn所言,如果有abstract的方法还没实现,
    这个子类也必须是abstract的,abstract类也不能生成具体的对象
    不过abstract类的static方法还是可以调用的
      
    谢谢各位!
      

  10.   

    HttpServlet之所以要声明成abstract的,个人认为是不想用他直接生成
    具体的对象,因为它并没有abstract的方法