在Java中,正確重寫(xiě)父類(lèi)方法需要遵循以下規(guī)則:
方法簽名必須與父類(lèi)方法相同:方法名、參數(shù)類(lèi)型和數(shù)量以及返回類(lèi)型必須與父類(lèi)中的方法完全一致。方法簽名包括方法名和參數(shù)列表,但不包括返回類(lèi)型和訪問(wèn)修飾符。
訪問(wèn)修飾符不能比父類(lèi)方法更嚴(yán)格:如果父類(lèi)中的方法是public,則在子類(lèi)中重寫(xiě)的方法也必須是public。如果父類(lèi)方法是保護(hù),則在子類(lèi)中重寫(xiě)的方法可以是protected或public,但
子類(lèi)方法的返回類(lèi)型不能比父類(lèi)方法更嚴(yán)格:如果父類(lèi)方法的返回類(lèi)型是基本類(lèi)型或?qū)ο箢?lèi)型,則在子類(lèi)中重寫(xiě)的方法的返回類(lèi)型必須與父類(lèi)方法相同或是父類(lèi)方法返回類(lèi)型的子類(lèi)。
子類(lèi)方法不能拋出比父類(lèi)方法更多的異常:如果父類(lèi)方法拋出異常,則在子類(lèi)中重寫(xiě)的方法必須拋出相同的異?;蛘呤歉割?lèi)方法拋出異常的子類(lèi)異常。
在子類(lèi)中使用super關(guān)鍵字調(diào)用父類(lèi)方法:在子類(lèi)中重寫(xiě)父類(lèi)方法時(shí),可以使用super關(guān)鍵字調(diào)用父類(lèi)方法。這個(gè)可以在子類(lèi)中重寫(xiě)父類(lèi)方法時(shí),使用super關(guān)鍵字來(lái)調(diào)用父類(lèi)方法。調(diào)用super關(guān)鍵字時(shí),需要注意傳入的參數(shù)要與父類(lèi)方法的參數(shù)類(lèi)型、數(shù)量和順序完全一致。
下面是一個(gè)示例代碼: