1. 程式人生 > >Java中子類的訪問許可權為何比父類大?

Java中子類的訪問許可權為何比父類大?

因為 向上轉型及java程式設計維護的原因

例:
假設一個父類A 擁有的方法 public void setXXX(){} 可以被其他任意物件呼叫
這個方法被子類B 覆寫後 為 void setXXX(){} 即 預設的 訪問許可權 只能被本包極其子類 所訪問

假設 其他包中的物件 C 呼叫 方法為: 
get( A a){
a.setXXX();
}
而此時傳入的物件為B類物件,假設為b此時b將轉型為a但是b中的setXXX() 呼叫許可權
已經被縮小了這將造成錯誤。所以子類物件不能比父類物件訪問許可權大

以上只是一個例子還有其他出於易維護、易程式碼結構設計的設計思想原因