抽象:籠統(tǒng),模糊,看不懂,不具體。
特點(diǎn):
1. 方法只有聲明沒有實(shí)現(xiàn)時(shí),該方法就是抽象方法,需要被abstract修飾。抽象方法必須定義在抽象類中,該類必須也被abstract修飾。
2. 抽象類不可以被實(shí)例化,為什么?
因?yàn)檎{(diào)用抽象方法沒有意義。
3. 抽象類必須有其子類覆蓋了所有的抽象方法后,該子類才可以實(shí)例化。否則這個(gè)子類還是抽象類。
幾個(gè)問題:
1. 抽象類中有構(gòu)造函數(shù)嗎?
有,用于給子類對象進(jìn)行初始化。
2. 抽象類可以不定義抽象方法嗎?
可以的。但是很少見,目的就是不讓該類創(chuàng)建對象。AWT的適配器對象就是這種類。
3. 抽象關(guān)鍵字不可以與哪些關(guān)鍵字共存?
private不行。因?yàn)槌橄蠓椒ㄊ且蛔宇惛采w的。
static不行。有static出現(xiàn),就不需要對象了。
final不行。一個(gè)抽象一個(gè)具體不能共存。
4. 抽象類和一般類的異同點(diǎn)。
相同點(diǎn):抽象類和一般類都是用來描述事物的,都在內(nèi)部定義了成員。
不同點(diǎn):
1). 一般類有足夠的信息描述事物,而抽象類描述事物的信息有可能不足。
2). 一般類中不能定義抽象方法,只能定義非抽象方法。而抽象類中可定義抽象方法,同時(shí)也可以定義非抽象方法。
3). 一般類可以被實(shí)例化,抽象類不可以被實(shí)例化。
5. 抽象類一定是個(gè)父類嗎?
是的。因?yàn)樾枰宇惛采w其方法后才可以對子類實(shí)例化,所以必須要子類并覆蓋。
sample: