題目 下述哪兩個方法是overriding?()

2021-10-06 10:38:39 字數 1041 閱讀 4256

class baseclass 

}class subclass extends baseclass

下述哪兩個方法是overriding?()

a、void setvar(float f)

b、public void setvar(int f)

c、public void setvar(float f)

d、public double setvar(float f)

e、public final void setvar(float f)

f、protected float setvar()

注意:以上問題考察的知識點是方法重寫,那就先介紹一下方法重寫的規則:

1、子類方法簽名(方法名稱+引數列表(包括方法引數的數目、順序、型別,和引數名稱無關))必須相同

2、子類方法返回值可以相同,也可以是子型別

3、子類訪問許可權可以相同,也可以更大

4、父類不丟擲異常,子類也不能丟擲異常,父類丟擲異常,子類丟擲的異常可以相同,也可以更小,甚至可以不丟擲異常

接下來對每個選項進行解釋:

a:預設的訪問許可權比protected的訪問許可權小,所以a錯誤

b:子類引數列表和父類不同,所以b錯誤

c:public的訪問許可權比protected的訪問許可權大,所以c正確

d:子類方法返回值既不相同,也不是子型別,所以d錯誤

e:相比於c項來說,多加了乙個非訪問控制符final,我之前也不知道對錯,經過**驗證之後發現是正確的,如下:

如果我把final換成static,就是錯誤的,如下所示:

所以這個以後記著吧,也就是如果父類方法中沒有final修飾,但是子類方法中可以有final修飾

f:子類引數列表和父類不同,所以f錯誤

題目 用兩個棧實現佇列

用兩個棧實現佇列 解析 佇列的特性是 先進先出 棧的特性是 後進先出 在下面的程式中,模擬實現佇列的兩個函式分別實現佇列尾部插入結點和在佇列頭部刪除結點的功能。具體實現方法和過程,看下面的gif圖 完整 及測試用例 include include using namespace std templa...

兩個c語言筆試題目

1 將乙個字串轉化為乙個整形資料 int main char str char p str int n,i while p 0 n 計算字串的長度,不包括字串結束符,此步驟可以沒有 while str i i 10 i i str 0 字元1減去字元0,並將結果賦值給整形變數,則整形變數變為數值1....

原 C C 兩個小題目

這周延續了上週的低迷 重感冒,而且非常鬱悶,因為有件事自己做得很努力卻依然沒有結果,沒戲了,無奈,迷茫,路在何方?一如 的持續低迷 忽然想起來自己最近看的理論性的東西居多,動手能力可能有所下降,就找了兩道c c 其實主要還是c,因為 後面就會看到 的小題目來練練手,果然,吭哧幹了將近4個小時,才算搞...