1. 程式人生 > 其它 >初學者談java抽象類和上轉型物件之實用意義

初學者談java抽象類和上轉型物件之實用意義

在“繼承”這一操作中,用抽象類來寫父類其實用普通類也可以實現。

那為什麼要使用抽象類呢?

如果用普通類作為父類,那在此父類中供其子類重寫的方法必須要有方法體,如:

public int area() {return 0;}

( 方法體為{return 0;} )

而這一方法體在程式中其實是無用的(因為會被子類的重寫覆蓋掉),但由於語法規定不得不填入,這就造成了程式結構不嚴謹統一(自己在後來閱讀時也可能懵一下)。

使用抽象類abstract來寫父類就很好的避免了上述問題。

使用多型設計程式(可理解為在程式中設定父類-子類結構),父類使用抽象類,作用為宣告子類都要用到的變數(屬性)和方法(行為),即起到一個“初始化”

的作用;子類繼承、重寫並使用父類中初始化的各種東西來實現其具體功能(當然也可以新增變數、方法,但這些就與此父類-子類體系脫離開了)。

在主類中用父類宣告變數(物件),用其子類將變數(物件)例項化:

Animal a = new Tiger();

這個a就是所謂的”上轉型物件“。這個上轉型物件a能夠使用父類”初始化“的行為們。而“行為”具體怎麼走取決於:是哪個子類初始化了它。