1. 程式人生 > >子類異常、訪問權限與父類的關系

子類異常、訪問權限與父類的關系

思想 get sp1 調用 一個 維護 spf pub 權限

子類的對象可以作為父類的對象(引用時是對父類方法的引用,但是傳入的對象是子類的對象,即用子類的對象來對父類進行實例化。),但是反過來不行。

所以:

1、子類的訪問權限一定要比父類大或相等。(子>父)

例:
假設一個父類A 擁有的方法  public void setXXX(){}   可以被其他任意對象調用
這個方法被子類B 覆寫後 為   void setXXX(){}  即 默認的 訪問權限  只能被本包極其子類 所訪問

假設 其他包中的對象 C  調用 方法為: 
     get( A  a=new B()){
        a.setXXX();
}
而此時傳入的對象為B類對象,假設為b,此時b將轉型為a,但是b中的setXXX() 調用權限
已經被縮小了這將造成錯誤。所以子類的方法的訪問權限不能小於父類。

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

2、子類重寫父類的方法時拋出的異常大小不能比父類的異常大。(子<父)

子類異常、訪問權限與父類的關系