一、定義
子類繼承父類以後,可以對父類中同名同引數的方法,進行覆蓋操作,也稱為方法的重置、覆蓋。在程式執行時,子類的方法將覆蓋父類的方法。
---->重寫以後,當建立子類物件以後,通過子類物件呼叫字元類中的同名同引數的方法時,實際執行的是子類重寫父類的方法。
二、重寫的規則
1.方法的宣告:許可權修飾符 返回值型別 方法名(形參列表)(約定俗成:子類中的叫重寫的方法,父類中的叫被重寫的方法。)
(1)子類重寫的方法必須和父類被重寫的方法具有相同的方法名稱、引數列表
(2)子類重寫的方法的返回值型別不能大於父類被重寫的方法的返回值型別
(3)子類重寫的方法使用的許可權修飾符的許可權不能小於父類被重寫的方法的許可權修飾符的許可權
----->子類不能重寫父類中宣告為private許可權的方法
2.方法的宣告:許可權修飾符 返回值型別 方法名(形參列表) throws 異常的型別
(1)子類方法丟擲的異常不能大於父類被重寫方法的異常(詳細的情況見異常處理)
(注意:子類與父類中同名同引數的方法必須同時宣告為非static的(即為重寫),或者同時宣告為static的(不是重寫)。因為static方法是屬於類的,子類無法覆蓋父類的方法。)
person類:
public
class
person
public
person
(string name,
int age)
public
void
eat(
)public
void
walk
(int distance)
private
void
show()
public object info()
public
double
info1()
}
student類:
public
class
student
extends
person
public
student
(string major)
//對父類中的eat()方法進行重寫
// void eat()
public
void
eat(
)public
void
study()
public
void
show()
public string info()
// public int info1()
}
persontest類:
public
class
persontest
}
輸出:
吃學生餐
走了100公里展示*
****
****
****
****
**學習臨床預防醫學專業技能
吃飯
C 物件導向中方法隱藏
黎克特制替換原則中,將父類的引用指向子類的物件體現了多型的好處,就是不同物件對同一方法表現的行為是不同的。在通過例項呼叫方法的時候,先會去父類中找這個方法,一看是virtual,而父類中的這個虛方法可能在子類中重寫也可能不重寫 重寫 呼叫子類中重寫的方法 不重寫 呼叫父類中的方法 如果子類中有乙個和...
物件導向 4 類中方法
物件導向 4.類中方法 類中方法的宣告和使用 方法 描述類應該具有的功能 比如 math類 sqrt random scanner類 next arrays類 sort binarysearch tostring equals 1.舉個例子 public void eat public void s...
java中方法的重寫
什麼是重寫?在子類中有乙個和父類中方法名相同,引數列表相同,返回值相同的方法,子類重寫了父類的方法。為什麼重寫?因為子類繼承父類以後功能更加強大,父類繼承過來的方法可能滿足不了子類的需求,所以需要方法的重寫。重寫需要用到的註解 override 子類是否重寫父類方法,取決於這個方法是否使用 over...