Java方法的重寫

2021-09-10 18:21:16 字數 1234 閱讀 4523

子類通過重寫父類的方法,可以用自身的行為替換父類的行為。方法的重寫是實現多型的必要條件。

方法的重寫需要符合下面的三個要點:

1.「==」: 方法名、形參列表相同。

2.「≤」:返回值型別和宣告異常型別,子類小於等於父類。

3.「≥」: 訪問許可權,子類大於等於父類。

public class testoverride 

}class vehicle

}class horse extends vehicle

}

如果不想讓子類重寫父類的某個方法,可以在函式前加上final修飾符

那麼為什麼要點中要求,子類重寫父類方法時的返回值型別必須小於等於原型別呢

public class testoverride 

}class vehicle

person whoismaster() }

class horse extends vehicle

gaostudent whoismaster()

}

這段**中horse重寫了父類的whoismaster方法,而gaostudent是person的子類,main函式中我們看到v1指向的其實是個horse物件,這種情況下我們有時依然需要呼叫whoismaster方法,如果子類方法重寫後返回值是原型別的子類,我們就可以順利使用,而不會出現錯誤,同時保證了多型性,因為我們時常為了實現多型而用諸如

vehicle v1 = new horse();
的用法。

下面是幾個方法重寫的例子

string重寫了object的equals方法

public boolean equals(object anobject) 

if (anobject instanceof string)

return true;}}

return false;

}

自己重寫equals方法,同時驗證string

public class testequals 

}class user

@override

public int hashcode()

@override

public boolean equals(object obj)

}

Java的方法重寫

方法重寫 override 也叫做方法覆蓋,它要求子類中方法的名字 引數個數 引數的型別和父類的方法完全不同。如果子類想使用被隱藏的方法或成員變數,必須使用關鍵字super。在jdk1.5版本之後,允許重寫方法的型別可以是父類方法的型別的子型別。如下 class a int f int a,int ...

java方法的重寫

1.目前的問題 父類的功能無法滿足子類的需求。2.方法重寫的前提 必須要存在繼承的關係。3.方法的重寫 子父類出了同名的函式,這個我們就稱作為方法的重寫。4.什麼是時候要使用方法的重寫 父類的功能無法滿足子類的需求時。5.方法重寫要注意的事項 1.方法重寫時,方法名與形參列表必須一致。2.方法重寫時...

Java之方法的重寫

方法的重寫指在子類中重新定義父類中已有的方法。重寫方法要注意下面的三點 1 重寫的方法和被重寫的方法必須具有相同方法名稱 引數列表和返回型別 2 子類中不允許出現與父類同名同參但不同返回值的方法 3 重寫方法不能使用比被重寫的方法更嚴格的訪問許可權。class human public human ...