面試題:下面哪一項說法是正確的?
A:在一個子類中,一個方法不是public的就不能被重載
B:覆蓋一個方法只需要滿足相同的方法名和參數類型就可以了
C:覆蓋一個必須要有相同的方法名參數和返回類型
D:一個覆蓋的方法必須有相同的方法名、參數名和參數類型
答案:C
問題解析:對于在同一個訪問區被聲明的幾個具有不同參數列的同名函數,程序會根據不同的參數列來確定具體調用哪個函數,這種機制叫重載,重載不關心函數的返回值類型。覆蓋是指派生類中對應被覆蓋的函數嚴格一致,覆蓋函數和被覆蓋函數只有函數體不同,當派生類對象調用子類中該同名函數時會自動調用子類中的覆蓋版本,而不是父類中的被覆蓋函數版本,這種機制就叫做覆蓋
成員函數被重載的特征如下:
1.相同的范圍(同一個類中)
2.函數名字相同
3.參數不同
4.Virtual關鍵字可有可無
覆蓋的特征如下
1.不同的范圍(分別位于派生類與基類)
2.函數名字相同
3.參數相同
4.基類函數必須有virtual關鍵字
更多Java知識,Java視頻,Java教程盡在動力節點Java培訓,關注動力節點官方微信,獲得一手Java面試題。