Java的方法重寫一:什麼是方法的重寫;二:舉一個例子;三:方法重寫和方法重載的區別; ...
Java的方法重寫
一:什麼是方法的重寫;
如果子類對繼承父類的方法不滿意,是可以重寫父類繼承的方法的,當調用方法時會優先調用子類的方法。
語法規則
返回值類型、方法名、參數類型及個數都要與父類繼承的方法相同,才叫方法的重寫
方法重寫是指:子類中定義一個方法,並且這個方法的名字、返回值類型、參數個數和類型與從父類繼承的方法完全相同。
方法的重寫必須滿足以下要求(從方法的五要素來分析):
(1)要有繼承;
(2)方法名,參數列表要相同;
(3)訪問修飾符不能比父類窄;
也就是說,父類的public方法在重寫時,訪問修飾符必須是public,因為public的範圍最大,否則就不構成方法的重寫,例如:對於父類protected的方法,在重寫時可以用protected或public來修飾。
(4)拋出的異常不能比父類更寬泛;
(5)返回類型要比父類的小或相同。
只有滿足以上五個要求才符合方法的重寫
二:舉一個例子;
Animal類:
package com.test; public class Animal { public int age; public void eat(){ System.out.println("年齡"+age+"動物是可以吃東西的"); //這裡的父類只是描述動物可以吃東西 } }
Dog類:
package com.test; public class Dog extends Animal{ }
如果我們對父類的eat方法不滿意,就可以重寫eat方法
Dog類:
package com.test; public class Dog extends Animal{ public void eat(){ System.out.println("年齡"+age+"狗是可以吃東西的"); //這裡的子類描述了狗可以吃東西 } }
主函數InitailClass類:
package com.test; public class InitailClass { public static void main(String[] args) { Dog d = new Dog(); d.age = 10; d.eat(); } }
運行結果為:
三:方法重寫和方法重載的區別;
方法重載:就是在同一個類中,方法的名字相同,但參數個數、參數的類型或返回值類型不同!
方法重寫:它是指子類和父類的關係,子類重寫了父類的方法,但方法名、參數類型、參數個數必須相同!