重寫的好處在於子類可以根據需要,定義特定於自己的行為。 也就是說子類能夠根據 需要實現父類的方法。
重寫方法不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的異常。例如: 父類 的乙個方法申明了乙個檢查異常 ioexception,但是在重寫這個方法的時候不能丟擲 exception 異常,因為 exception 是 ioexception 的父類,只能丟擲 ioexception 的 子類異常。
方法的重寫規則:
引數列表必須完全與被重寫方法的相同;
返回型別必須完全與被重寫方法的返回型別相同;
訪問許可權不能比父類中被重寫的方法的訪問許可權更低。例如:如果父類的乙個方 法被宣告為public,那麼在子類中重寫該方法就不能宣告為protected。
父類的成員方法只能被它的子類重寫。
宣告為final的方法不能被重寫。
宣告為static的方法不能被重寫,但是能夠被再次宣告。
子類和父類在同乙個包中,那麼子類可以重寫父類所有除了宣告為private和final 的方法。
子類和父類不在同乙個包中,那麼子類只能夠重寫父類的宣告為public和 protected的非final方法。
重寫的方法能夠丟擲任何非強制異常,無論被重寫的方法是否丟擲異常。但是,
重寫的方法不能拋出新的強制性異常,或者比被重寫方法宣告的更廣泛的強制性 異常,反之則可以。
構造方法不能被重寫。
如果不能繼承乙個方法,則不能重寫這個方法。
例項**如下
:publicclassbird //
先定義乙個屬性
intweight
= 0; //
私有的變數
,private
不允許被繼承
//private int intprivate= //
方法(定義乙個方法給其他的類進行繼承)
publicvoidfly()
publicvoideatting() //
私有的方法
// private void privatemethod()
// private 方法
privatevoidmethodprivate()
publicstaticvoidprint() }
publicclassostrchextendsbird //
重寫fly
的方法
//如果在括號內加了
inti.
那麼就不是重寫了是過載、、、形參列表
publicvoidfly()
publicstaticvoidsss()
publicstaticvoidprint() }
方法的重寫
方法的重寫 overwrite override 定義 指子類與父類的方法返回型別一樣,方法名稱一樣 引數一樣,這樣我們可以說子類與父類的方法構成了重寫關係。方法的重寫 又叫做覆蓋或覆寫 例項理解 比如說定義乙個動物類,裡面有乙個方法是動物sing,而有乙個貓類繼承了動物類,但它不想顯示動物在sin...
方法的重寫
目前的問題 父類的功能無法滿足子類的需求。方法重寫的前提 必須要存在繼承的關係。方法的重寫 子父類出了同名的函式,這個我們就稱作為方法的重寫。什麼是時候要使用方法的重寫 父類的功能無法滿足子類的需求時。方法重寫要注意的事項 1.方法重寫時,方法名與形參列表必須一致。2.方法重寫時,子類的許可權修飾符...
方法的重寫
方法的重寫 1.什麼是方法的重寫 override 或 overwrite 在了類的繼承以後,子類可以對父類中繼承來的方法進行 覆蓋 或 覆寫 2.舉例 class circle 返回圓的面積 class cylinder extends circle 返回圓柱的表面積 3.重寫的規則 方法 許可權...