本帖最后由 王瀛 于 2013-5-26 15:51 编辑
当我们描述一类事物,该事物的某些行为的作用(即功能,相当于函数名、方法名)能够确定,但是具体怎么去做,有很多不同的情况(不能单一的确定)时,我们就将这个功能的名称先确定下来,而如何实现这个功能,就留给后人去补充(子类继承并复写)。这样就形成了抽象方法。
为了标识这类方法,Java中使用abstract修饰符修饰。
举个例子:将NBA看作一个类,其中的得分看作一种方法,而实现这个方法有很多种方式:可以投2分,可以投3分,可以罚球得分,可以扣篮得分,可以空接得分...于是- abstract class NBA
- {
- abstract 得分();
- }
- class 诺维斯基 extends NBA
- {
- 得分(){无解后仰中投}
- }
- class 詹姆斯 extends NBA
- {
- 得分(){推土机突破上篮}
- }
- class 布雷克格里芬 extends NBA
- {
- 得分(){无节操暴扣}
- }
复制代码 子类继承抽象类后,必须重写父类中的抽象方法。换个角度说就是,抽象方法具有强制性,强制子类去复写它。
|