在回答這個問題之前,我先來說一說為什麼需要使用抽象類:
對於普通類(例項類)來說,在我們子類繼承父類的時候,子類不用重寫父類中的方法也可以呼叫該方法。那麼多個子類都是呼叫同一個父類方法,那麼它們的實現是一樣的,對於實際情況來說肯定是不對的,應該是每個子類對於同一個行為應該要有自己的方式。舉個例子:所有人都繼承人這個類,都有吃飯這個方法,但是華人和印度人吃飯的方式就不一樣,華人吃放用筷子,印度人吃飯用手抓。那麼如果人這個父類吃飯的方法有具體的實現的話那對於子類來說總是不怎麼友好的,那麼我們就應該要把父類中吃飯的方法定義成為抽象方法才是最好的,讓繼承的子類必須重寫。
好知道了抽象類的基本概念,我來在來說抽象類的特點:
成員變數,例項方法等等例項類中有的都能有。抽象方法(只有方法的結構,沒有方法的實現。)
public abstract class 抽象類名{
成員變數;
public void 方法名(){}
public void 方法名2();
}
定義的時候需要加上關鍵字abstract;
public abstract class 抽象類名{}
抽象類是不能例項化的,原因就在於這個類是抽象的。
所以抽象類是隻能被繼承才能有它存在的意義,繼承了該抽象類必須重寫抽象類中所有的抽象方法。
public abstract class f{}
public class children extends f{重寫所有抽象方法}
總結:抽象類中能有所有例項類中的成員,並且還可以有抽象方法。
抽象類是不能new例項的,所以抽象類是需要被繼承的這樣才有意義
子類繼承抽象類需要重寫抽象類中所有的抽象方法
抽象類的出現就是為了約束子類成為一個什麼型別
抽象類之間也可以相互繼承,抽象類也可以繼承例項類
想自學java的可以關注答主,答主會不定時的更新一套java的學習文章
在回答這個問題之前,我先來說一說為什麼需要使用抽象類:
對於普通類(例項類)來說,在我們子類繼承父類的時候,子類不用重寫父類中的方法也可以呼叫該方法。那麼多個子類都是呼叫同一個父類方法,那麼它們的實現是一樣的,對於實際情況來說肯定是不對的,應該是每個子類對於同一個行為應該要有自己的方式。舉個例子:所有人都繼承人這個類,都有吃飯這個方法,但是華人和印度人吃飯的方式就不一樣,華人吃放用筷子,印度人吃飯用手抓。那麼如果人這個父類吃飯的方法有具體的實現的話那對於子類來說總是不怎麼友好的,那麼我們就應該要把父類中吃飯的方法定義成為抽象方法才是最好的,讓繼承的子類必須重寫。
好知道了抽象類的基本概念,我來在來說抽象類的特點:
1.抽象類中能有什麼成員:成員變數,例項方法等等例項類中有的都能有。抽象方法(只有方法的結構,沒有方法的實現。)
public abstract class 抽象類名{
成員變數;
public void 方法名(){}
public void 方法名2();
}
2.抽象類的定義:定義的時候需要加上關鍵字abstract;
public abstract class 抽象類名{}
3.抽象類的使用:抽象類是不能例項化的,原因就在於這個類是抽象的。
所以抽象類是隻能被繼承才能有它存在的意義,繼承了該抽象類必須重寫抽象類中所有的抽象方法。
public abstract class f{}
public class children extends f{重寫所有抽象方法}
總結:抽象類中能有所有例項類中的成員,並且還可以有抽象方法。
抽象類是不能new例項的,所以抽象類是需要被繼承的這樣才有意義
子類繼承抽象類需要重寫抽象類中所有的抽象方法
抽象類的出現就是為了約束子類成為一個什麼型別
抽象類之間也可以相互繼承,抽象類也可以繼承例項類
想自學java的可以關注答主,答主會不定時的更新一套java的學習文章