1. 程式人生 > >java中抽象類的學習

java中抽象類的學習

一、抽象類的產生

抽象類的產生和繼承有關,和父類有關,父類就是子類的共性抽取出來的。所謂的抽象,就是不是一種實物,比如人、貓、狗抽象出來是動物,人是實物、物件,貓是實物、物件。但是動物就不是實物和物件。動物就是抽象出來的。因此抽象類就是從實物中抽取出來的共性組成的類。

二、abstract關鍵字

抽象的方法是沒有主體的方法,必須使用關鍵字abstract修飾。抽象的方法必須存在於抽象類中,而類必須用abstract修飾。 

這就是抽象類的定義。

三、抽象類和普通類的區別

1、抽象類不能例項化,要清楚什麼叫抽象,抽象就是不是物件,抽象出來的東西就是沒有實體的東西,無法形成實體的東西。因此也就無法建立物件。即抽象類無法例項化。不能new。從另一方面考慮,由於抽象類方法沒有方法體,如果new了,呼叫抽象類方法時,無法呼叫方法。因為沒有方法體。因此無法例項化。可以new他的子類

2、抽象類和抽象方法都需要被abstract修飾。抽象方法一定要定義在抽象類中。

3、抽象類無法直接建立物件,原因是:呼叫抽象方法無意義。

4、只有覆蓋了抽象類中所有的抽象方法後其子類才可以建立物件,否則該子類還是一個抽象類。 

因為:假如子類沒有對抽象類的所有方法重寫,當建立子類物件後,就會出現問題,因為子類繼承了抽象類的所有方法,當呼叫沒有重寫的方法時,就無法呼叫。原因還是呼叫抽象方法無意義。

四、抽象類的設計思想

抽象類的思想就是:強制子類重寫抽象方法。

五、抽象類細節問題

1、抽象類是一個父類,是不斷從子類共性抽取出來的。

2、抽象類可以不定義抽象方法,但是無意義。

3、抽象類和一些關鍵字無法共存。

1、private關鍵字。private修飾抽象方法,使得抽象方法無法重寫,而抽象方法的目的就是讓子類重寫的,這就矛盾了。

2、final

3、static