抽象概念
數據抽象爲外界提供了僅有的基本信息,在表示基本特徵的過程中不包括實現細節。舉個真實世界的例子,比如
一本書。當你聽到是書時,你不知道具體的細節,如頁數顏射或者大小,但你明白書的概念、大概模樣。這就是
對書的抽象。抽象的概念是我們關注基本特徵,而不是一個特定的具體特徵。
在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 的原因,並且把它們如何發出聲音的實現留給子類。