Pages

2008/10/17

[Java] Override 覆寫

當子類別繼承父類別時, 可以透過Override方式改寫父類別的方法,
當使用override修改父類別的方法, 有下列幾點限制:
  1. 方法名稱不能修改.(改了就是新增方法而不是覆寫了!)
  2. 若父類別的方法有丟出例外時, 子類別也必須丟出此例外或該例外之子類別.
  3. 子類別方法所傳回值之型態須與父類別方法一樣. (若更改傳回值之型態, 這樣就是overload了吧!)
  4. 子類別方法之修飾詞權限不得小於父類別. (繼承的用意就是希望孩子變強, 那有變弱的道理!)
  5. 若父類別之方法設定為final, 子類別不能修改該方法. (廢言, 都已經是final怎麼改寫)
  6. 若父類別之方法宣告為static, 子類別不可將其宣告為non-static, 反之亦然.


以下情況皆為重新定義非覆寫:
  1. 修改父類別之靜態方法
  2. 修改父類別之private方法

No comments: