方法重寫細節

2022-09-24 06:27:10 字數 667 閱讀 1502

1.子類的方法重寫的返回值型別,引數,名字必須與父類的被重寫方法一致,這裡子類重寫方法的返回值型別可以是父類被重寫方法的返回值型別的子類,但不能是父類被重寫方法的返回值型別的父類。方法重寫發生的範圍時子類與所有的上級類。

2.子類的方法重寫不能縮小父類方法的訪問許可權範圍

這裡說的訪問許可權範圍是指能被訪問的範圍,即public   >   protected   >  default  >  private

比如父類的方法如下

public

void

a();

那麼子類重寫的方法只能是pubilc訪問許可權

再比如以下的父類中的方法

protected

void a(){};//

子類的方法重寫只能是大於protected的訪問許可權

void a(){};//

子類的方法重寫只能是大於default的訪問許可權

private

void a(){};//

子類的方法重寫可以四個許可權任意一種,因為private已經是最小了

之所以要設定這一條規則,我覺得是因為子類重寫方法如果比父類的小,那麼遇到父類的訪問許可權允許,子類訪問許可權不允許的情況,就覆蓋不了父類了,那你設定這個方法override等於沒用

方法過載,方法重寫

方法過載 前提 必須在同一類中!才能過載 特點 這幾個方法要在乙個類中 這幾個方法名字要一樣 這幾個方法引數項不同 引數型別不同 主要就是 引數列表不能相同 順序可以不同 方法的重寫 前提是繼承關係 訪問修飾符要比繼承之前的大,返回值型別相同,方法名相同,引數列表相同,但方法體不同,稱為方法的重寫 ...

方法過載 方法重寫

同乙個類中,方法名一致,但引數 數量 型別 順序 不一樣。數量 public a 與public a int a 型別 public a int a 與public a string a 順序 public a string a,int a 與public a int a,string a 子類繼承...

方法過載 方法重寫

1 方法過載 protected void fun int a protected void fun int a,int b protected void fun long a private void fun int a,long b private void fun long b,int a p...