class base
public void tellname()
public void printname()
}public class dervied extends base
public void tellname()
public void printname()
public static void main(string args)
}
最後輸出結果為:
dervied tell name: null
dervied print name: null
dervied tell name: dervied
dervied print name: dervied
解釋:1、多型俗稱方法重寫、覆蓋,只針對方法,不針對屬性(哪有子類屬性覆蓋父類屬性的?)。
2、乙個型別的指標指向子類例項化物件時,先初始化父類屬性,然後執行父類的構造方法,並呼叫tellname()和printname()兩個方法,此時要注意,由於多型特性,此時執行的實際上是子類的兩個方法,而此時子類還沒有例項化,那麼子類的name屬性也沒有初始化,因此為null。
3、父類初始化後,接著例項化子類,此時子類name屬性值也初始化為「dervied」,此時子類構造方法中呼叫兩個方法就可以列印出現值。
一道java基礎題
題目 要求隨機產生20個0 100之間的數字,並對這20個數字以10的倍數進行歸類,然後列印。如 10 7 9 5 30 22 25 29 50 49 45 public static void main string args 隨機產生20個0 100之間的數字,並放入list中 return p...
一道C 類多型繼承題的辛酸歷程
定義乙個抽象類shape用以計算面積,從中派生出計算長方形 梯形 圓形面積的派生類。程式中通過基類指標來呼叫派生類中的虛函式,計算不同形狀的面積。盡量用抽象類和虛函式做,實在不會不用也行 第一行輸入乙個字串,表示要計算的幾何圖形型別,cfx表示長方形,tx表示梯形,yx表示圓形。第二行輸入若干正數,...
Java多型一道面試題
下面 輸出是什麼 class a public string run a obj class b extends a public string run a obj class c extends b class d extends b public class test 關於上面所有注釋答案的解釋...