初學者談java抽象類和上轉型物件之實用意義
阿新 • • 發佈:2022-04-22
在“繼承”這一操作中,用抽象類來寫父類其實用普通類也可以實現。
那為什麼要使用抽象類呢?
如果用普通類作為父類,那在此父類中供其子類重寫的方法必須要有方法體,如:
public int area() {return 0;}
( 方法體為{return 0;} )
而這一方法體在程式中其實是無用的(因為會被子類的重寫覆蓋掉),但由於語法規定不得不填入,這就造成了程式結構不嚴謹統一(自己在後來閱讀時也可能懵一下)。
使用抽象類abstract來寫父類就很好的避免了上述問題。
使用多型設計程式(可理解為在程式中設定父類-子類結構),父類使用抽象類,作用為宣告子類都要用到的變數(屬性)和方法(行為),即起到一個“初始化”
在主類中用父類宣告變數(物件),用其子類將變數(物件)例項化:
Animal a = new Tiger();
這個a就是所謂的”上轉型物件“。這個上轉型物件a能夠使用父類”初始化“的行為們。而“行為”具體怎麼走取決於:是哪個子類初始化了它。