抽象概念
数据抽象为外界提供了仅有的基本信息,在表示基本特征的过程中不包括实现细节。举个真实世界的例子,比如
一本书。当你听到是书时,你不知道具体的细节,如页数颜射或者大小,但你明白书的概念、大概模样。这就是
对书的抽象。抽象的概念是我们关注基本特征,而不是一个特定的具体特征。
在Java中,抽象是使用抽象类和接口实现的。
抽象类是使用abstract 关键字定义的。
- 如果一个类声明抽象类,则不能被实例化(不能创建该类型的对象)。
- 要使用抽象类,必须从另一个类继承它。
- 抽象类中不一定包含抽象方法,但是包含抽象方法的类必定是抽象类。
提示:抽象方法没有定义,方法名后面直接跟一个分号,而不是一个花括号。
如:abstract void run();
抽象类
例如,我们可以将 Animal 类定义为抽象类:
abstract class Animal { int legs = 0; abstract void barking(); }
barking 方法也是抽象的,因为它在父类中没有实现。
我们可以继承 Animal 类并为子类定义 barking() 方法:
class Dog extends Animal { public void barking() { System.out.println("Woof-Woof"); } }
每种动物都会发出声音,但每种动物都有不同的叫声。这就是我们为什么要定义一个抽象类 Animal 的原因,并且把它们如何发出声音的实现留给子类。