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