黑马程序员技术交流社区

标题: 关于抽象类 [打印本页]

作者: zclove898    时间: 2012-2-21 22:21
标题: 关于抽象类
本帖最后由 zclove898 于 2012-2-21 23:31 编辑

今天看完了抽象类,觉得还是不太明白,抽象类和抽象方法到底有什么作用。为什么要定义抽象类,
作者: 温昌寿    时间: 2012-2-21 22:25
抽象类可以包含方法的实现细节,因此可以将子类中公用的逻辑上提,增加的代码的复用,就是通过方法的覆盖来实现多态的属性。也就是运行期绑定。
作者: 陈伟    时间: 2012-2-21 22:27
抽象类就是没有实际意义的类,不能进行实例化,抽象方法是没有方法体,子类要重写此方法,好比有一个父类Pet,子类:Dog和Cat,父类是抽象类,定义一个抽象方法run(),把Pet定义为抽象类就是因为没有一只叫Pet的动物,当实例化时没实际意义,而run() 方法子类在继承父类时进行重写,因为Dog和Cat跑的方法是不一样的
作者: H07000223    时间: 2012-2-21 22:37
保证继承者或实现者重写其抽象的方法,在抽象方法定义的时候事先说好其作用,到底干嘛用的。让重写该方法知道这个方法的用途,更加具体的实现方式可以自己组织。从而达到制定一种规范,约定的作用。
还有就是大家不用为起方法名而烦恼了。
作者: 袁野    时间: 2012-2-21 22:41
举一个例子 加人吃饭 有的人 吃馒头, 米饭 ,面条;  所以就可以把 吃饭定义成抽象的方法; 不同的人定义不同的对象
作者: 、未完待续    时间: 2012-2-21 23:03
多看看就好了
作者: 李晓俊老师    时间: 2012-2-21 23:34
首先明白抽象类是怎么来的,,,当很多类有共同的方法时,我们不再是向上抽取公共方法,,而是只抽取功能定义,
舍弃方法体,,它有两种作用:
一:抽象类可以强迫子类覆盖其抽象方法,来实现多态,提高程序的扩展性,
二:如果不想让别人创建对象,可以将其定义为抽象类,这是它里面可以没有抽象方法
作者: 王涛    时间: 2012-2-22 00:46
抽象类和抽象方法就是用来被继承的子程序进行重写的 所以抽象方法中不需要写任何代码
举个例子
abstract Animal{  //定义一个抽象类animal
  run{}  //定义animal类的一个抽象方法 run
}
方法中不写任何东西是因为不同的继承它的类的跑的方法不同 也就是说 不管你定义animal类的run方法为什么 子类都是要重写的 既然如此 抽象类中只需写一个方法名 而不需要在方法中写任何东西





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