面向對象之抽象類繼承
在定義類的前面加上關鍵字abstract,那麼這個類就是抽象類了,抽象類本身無法產生實例對象,而且抽象類包含了一個以上的抽象方法,這些方法只是提供函數名稱,並沒有定義如何具體實現,由繼承的派生類實現,派生類同時必須實現所有抽象類的方法,否則其本身將成爲另外一個抽象類。(也就是說用abstract修飾的類,在繼承它的時候需要實現它裏邊的所有抽象方法,否則繼承者本身也會變成抽象類)
需要我們注意的一點是,當派生類重寫抽象類的方法時,要使用override關鍵字來重寫抽象類所定義的方法。
抽象類只能被繼承,不能被實例化,抽象類的抽象方法是虛方法。
下面介紹什麼是抽象類的抽象方法:
抽象方法:在類中沒有方法體的方法,就是抽象方法。
抽象類:含有抽象方法的類就叫抽象類。
1.抽象類中的抽象方法必須被實現!
2.如果一個子類沒有實現父類中的抽象方法,則子類也成爲了一個抽象類!
3.抽象類中的普通方法,可以不必實現。
1 用abstract來修飾一個類時,這個類叫做抽象類;用abstract來修飾一個方法時,該方法叫做抽象方法。例如 :
abstract class Animal { //用abstract來定義一個Animal爲抽象類
}
和
public abstract void enjoy(); //用abstract來定義一個抽象方法"enjoy"
2 含有抽象方法的類必須被聲明爲抽象類,抽象類必須被繼承,抽象方法必須被重寫。
3 抽象類不能被實例化。
4 抽象方法只需聲明,而不需實現某些功能。如:
public abstract void enjoy();//這個抽象方法不需要實現功能
public void enjoy() {
System.out.print("叫聲"); //而一般的方法有必要實現某些功能
}