黑马程序员技术交流社区

标题: 一抽象类包含N(>=2)个方法,怎么让子类任意实现 [打印本页]

作者: 陈世涛    时间: 2012-7-16 19:36
标题: 一抽象类包含N(>=2)个方法,怎么让子类任意实现
我们知道,一个子类继承某抽象类后,要想用它实例化对象,
则必须把抽象类中的抽象方法都具体化。
现在,假设A是个抽象类,其中有三个方法,a,b,c;
如果,B继承A,怎样让B只任意实现a,b,c其中一个即可
注:应该可以实现的,因为,javax.servlet包中的httpservlet就好像是一个这样的抽象类,
我们建一个类继承httpservlet,必须实现doGet,doPost,doPut,doDelete,init,destory,getServletInfo其中任意一个。

: )个人见解,望高手指正!谢谢





作者: 李勇    时间: 2012-7-16 20:14
通俗易懂的来说
你可以先再定义一个类
C 让它继承A
C中的方法头均和A 中的一样
方法体均为空的
然后B继承C
就可以实现了

用抽象方法实现  还不如用接口来得快 而且你这个问题 是别人回答过的


作者: 李勇    时间: 2012-7-16 20:15
http://tieba.baidu.com/f?kz=26570664
好好看看
作者: 张_涛    时间: 2012-7-16 20:15
你看错了,如果一个类继承一个抽象类,则必须实现其所有抽象方法,除非其也为抽象类
而你所说的那种貌似只覆盖了若干而非全部的方法的类,是因为它继承了一个实现了所有抽象方法的类。
httpservlet不是抽象类,你可以看下文档。
作者: 全海波    时间: 2012-7-16 20:41
抽象类的特点:
   1,抽象类中可以有常量,但是常量不可以被抽象化(就是说不能被absrarct修饰)
   2,抽象类中可以没有抽象方法,但是这样做的目的,主要是不让创建对象
   3,抽象类中可以有一个或者多个抽象方法,如果子类要想实现该抽象类的抽象方法,子类必须复写父类中的所有抽象方法,如果没有复写父类中的所有抽象方法的话
      ,那么该子类就不能被创建对象,因为该子类还是一个抽象方法,自然而然,该子类就没办法实现父类的方法
所以必须复写父类的所有方法才可实现调用a,b,c中的任意方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2