A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zclove898 高级黑马   /  2012-2-21 22:21  /  1633 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zclove898 于 2012-2-21 23:31 编辑

今天看完了抽象类,觉得还是不太明白,抽象类和抽象方法到底有什么作用。为什么要定义抽象类,

7 个回复

倒序浏览
抽象类可以包含方法的实现细节,因此可以将子类中公用的逻辑上提,增加的代码的复用,就是通过方法的覆盖来实现多态的属性。也就是运行期绑定。
回复 使用道具 举报
抽象类就是没有实际意义的类,不能进行实例化,抽象方法是没有方法体,子类要重写此方法,好比有一个父类Pet,子类:Dog和Cat,父类是抽象类,定义一个抽象方法run(),把Pet定义为抽象类就是因为没有一只叫Pet的动物,当实例化时没实际意义,而run() 方法子类在继承父类时进行重写,因为Dog和Cat跑的方法是不一样的
回复 使用道具 举报
保证继承者或实现者重写其抽象的方法,在抽象方法定义的时候事先说好其作用,到底干嘛用的。让重写该方法知道这个方法的用途,更加具体的实现方式可以自己组织。从而达到制定一种规范,约定的作用。
还有就是大家不用为起方法名而烦恼了。
回复 使用道具 举报
举一个例子 加人吃饭 有的人 吃馒头, 米饭 ,面条;  所以就可以把 吃饭定义成抽象的方法; 不同的人定义不同的对象
回复 使用道具 举报
多看看就好了
回复 使用道具 举报
首先明白抽象类是怎么来的,,,当很多类有共同的方法时,我们不再是向上抽取公共方法,,而是只抽取功能定义,
舍弃方法体,,它有两种作用:
一:抽象类可以强迫子类覆盖其抽象方法,来实现多态,提高程序的扩展性,
二:如果不想让别人创建对象,可以将其定义为抽象类,这是它里面可以没有抽象方法
回复 使用道具 举报
王涛 黑马帝 2012-2-22 00:46:59
8#
抽象类和抽象方法就是用来被继承的子程序进行重写的 所以抽象方法中不需要写任何代码
举个例子
abstract Animal{  //定义一个抽象类animal
  run{}  //定义animal类的一个抽象方法 run
}
方法中不写任何东西是因为不同的继承它的类的跑的方法不同 也就是说 不管你定义animal类的run方法为什么 子类都是要重写的 既然如此 抽象类中只需写一个方法名 而不需要在方法中写任何东西
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马