abstract修飾符可以用來修飾方法也可以修飾類,如果修飾方法,那麼該方法就是抽象方法;如果修飾類,那麼該類就是抽象類。
1)抽象類和抽象方法的關係
抽象類中可以沒有抽象方法,但是有抽象方法的類一定要宣告為抽象類。
2)語法
public abstract class action
public void dosomething()
對於這個普通方法來講:
"public void dosomething()"這部分是方法的宣告
""這部分是方法的實現,如果大括號中什麼都沒寫,就叫方法的空實現
宣告類的同時,加上abstract修飾符就是抽象類
宣告方法的時候,加上abstract修飾符,並且去掉方法的大口號,同時結尾加上分號,該方法就是抽象方法。
3)特點及作用
抽象類,不能使用new關鍵在來建立物件,它是用來讓子類繼承的。
抽象方法,只有方法的宣告,沒有方法的實現,它是用來讓子類實現的。
注:子類繼承抽象類後,需要實現抽象類中沒有實現的抽象方法,否則這個子類也要宣告為抽象類。
例如:public abstract class action
main:
//編譯報錯,抽象類不能new物件
action a = new action();
//子類繼承抽象類
public class eat extends action
}main:
action a = new eat();
a.dosomething();
注:子類繼承抽象類,那麼就必須要實現抽象類沒有實現的抽象方法,否則該子類也要宣告為抽象類。
思考1:抽象類不能new物件,那麼抽象類中有沒有構造器?
思考2:抽象類和抽象方法意義(為什麼要編寫抽象類、抽象方法)
有抽象方法的抽象類
無抽象方法的抽象類
effective c 4 8學習筆記
原因 賦值與初始化 classa a a const int n a a const int n x n y n c 規定,物件成員變數的初始化動作發生在進入建構函式本體之前。編譯器總是會為使用者自定義型別之成員變數自動呼叫預設建構函式 如果在成員初值列中沒有被指定初值。為了避免漏掉某些必須初值的成...
python學習筆記 48 使用SQLite
python就內建了sqlite3,所以,在python中使用sqlite,不需要安裝任何東西,直接使用。在使用sqlite前,我們先要搞清楚幾個概念 表是資料庫中存放關係資料的集合,乙個資料庫裡面通常都包含多個表,比如學生的表,班級的表,學校的表,等等。表和表之間通過外來鍵關聯。要操作關聯式資料庫...
C primer學習筆記 4 8位運算子
位運算子 優先順序由上到下遞減 左結合律 expr 位求反 expr1 expr2 左移,返回左側值的二進位制形式左移右側個位的拷貝 右移同理 expr1 expr2 位與,對應位依次進行相與運算,並返回運算結果。與 注意區分 expr1 expr2 位異或,對應位依次進行異或運算 異1同0 並返回...