更新時(shí)間:2022-07-28 來(lái)源:黑馬程序員 瀏覽量:
IT就到黑馬程序員.gif)
子類重寫父類方法時(shí),不能使用比父類中被重寫方法更嚴(yán)格的訪問(wèn)權(quán)限。例如,父類中的方法是public權(quán)限,子類的方法就不能是private權(quán)限。如果子類在重寫父類方法時(shí)定義的權(quán)限縮小,則在編譯時(shí)將出現(xiàn)錯(cuò)誤提示。下面對(duì)文件4-3進(jìn)行修改,修改后的代碼如文件4-4所示。
文件4-4 Example04.java
//定義Animal類
class Animal {
//定義動(dòng)物叫的方法
public void shout () {
System.out.println("動(dòng)物發(fā)出叫聲");
}
}
// 定義Dog類繼承Animal類
class Dog extends Animal {
//重寫父類Animal中的shout () 方法
private void shout () {
System.out.println("汪汪汪......")
}
}
//定義測(cè)試類
public class Example04 {
public static void main (String[] args) {
Dog dog = new Dog (); //創(chuàng)建Dog類的實(shí)例對(duì)象
dog.shout (); //調(diào)用dog重寫的shout()方法
}
} 編譯文件4-4,編譯報(bào)錯(cuò),如圖4-5所示。
錯(cuò).jpg)
圖4-5 文件4-4編譯報(bào)錯(cuò)
在文件4-4中,第4行代碼在Animal類中定義了一個(gè)shout()方法并將訪問(wèn)權(quán)限定義為public,第9~14行代碼定義了一個(gè)Dog類并繼承Animal類,第11行代碼在聲明shout()方法時(shí),將shout()方法的訪問(wèn)權(quán)限定義為private。如圖4-5所示,編譯文件會(huì)報(bào)錯(cuò),這是因?yàn)樽宇愔貙懜割惙椒〞r(shí),不能使用比父類中被重寫的方法更嚴(yán)格的訪問(wèn)權(quán)限。