0038關於父類與子類中的一道題(牛客)

2021-07-11 07:03:07 字數 764 閱讀 5944

求輸入:

classa

virtualvoidfun()

};

classb:publica

voidfun()

};

intmain(void)

答案:b

1,首先宣告為a型別的指標指向實際型別為a的物件,呼叫的肯定是a的方法,輸出1 2,

2,然後宣告為a型別的指標指向實際型別為b的物件,則非虛函式呼叫a的方法,輸出1,虛函式呼叫實際型別b的方法,輸出4

3,宣告型別為a的指標指向實際型別為b的物件,進行乙個強制型別轉換,其實這種父類指標指向子類會自動進行型別轉換,所以是否強制型別轉換都不影響結構,原理同上一步,結果輸出1 4

所以最終輸出為121414

C 中的父類與子類

c 中的父類與子類的繼承關係與c和c 中的類似,這裡先闡述最重要的一點 假如子類繼承了父類,那麼子類可以強制轉換為父類,並且保證編譯和執行都不出錯 但是父類強制轉換成子類的時候,編譯可以通過執行通不過。所以子類只能強制轉化成父類,而父類不能直接轉化成子類。static void main strin...

關於子類和父類中的this的用法

public class demo class fu class zi extends fu 這裡面的this很奇怪,為什麼輸出結果是1,this不是指向當前物件麼,當前物件不是子類的例項麼?例如父類有get和set方法,裡面應該有this關鍵字,當子類繼承父類時,呼叫get和set方法時,this...

Java中關於子類成員變數與父類成員變數同名

重寫和過載是針對方法的,子類的變數可以覆蓋父類的變數,但是不能改變父類的變數。class animals class dogg extends animals public class testduotai 列印結果 animals enjoy 10dog enjoy 20dog enjoy 102...