一道題跟java多型和繼承相關

2021-07-13 14:35:00 字數 701 閱讀 7000

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 關於上面所有注釋答案的解釋...