方法重寫:
package com.lbj.javase10;
public class Bird extends Animal {
public void move(){
System.out.println("鳥會飛");
}
}
package com.lbj.javase10;
public class Cat extends Animal{
public void move(){
System.out.println("貓會爬");
}
}
package com.lbj.javase10;
public class Animal {
public void move(){
System.out.println("動物都可以移動");
}
}
package com.lbj.javase10;
/**
*
* 回顧java語言中的方法重載:
* 1.方法重載又被稱爲Overload
*
* 2.方法重載什麼時候使用:
* 在同一個類當中,方法完成的功能是相似的,建議方法名相同,這樣方便程序員的編程
* 就像在調用一個方法一樣。代碼美觀
*
* 3.什麼條件滿足後構成方法重載:
* *在同一個類中
* 方法名相同
* 參數列表不同:類型、順序、個數
*
* 4.方法重載和什麼無關:
* *和方法的返回值類型無關
* *和方法的修飾符列表無關
*
*
* *------------------------------------------
*
* 關於java語言中方法的覆蓋:
*
* 1.方法覆蓋又被稱爲方法重寫:override【官方的】/overWrite
*
* 2.什麼時候使用方法重寫?
* 當父類中的方法已經無法滿足當前子類的業務需求
* 子類有必要將父類中繼承過來的方法進行重新編寫
* 這個編寫的過程稱爲方法重寫,也叫做【方法覆蓋】
*
* 3.什麼條件滿足之後方法會發生重寫呢?【代碼滿足什麼條件後,就構成方法的覆蓋呢?】
* *方法重寫發生在具有繼承關係的父子關係之間【這是重寫發生的前提條件】
* *方法重寫的時候:返回值類型相同,方法名相同,形參列表相同
* *方法重寫的時候:訪問權限不能更低,可以更高
* *方法重寫的時候:拋出異常不能更多可以更少【瞭解異常拋出後會解釋】
*
* 4.建議方法重寫的時候儘量複製粘貼,不要編寫,容易出錯,導致沒有產生方法覆蓋
*
* 5.注意:
* 私有方法不能繼承,所以不能覆蓋
* 構造方法不能繼承,所以不能覆蓋
* 靜態方法不存在覆蓋【瞭解多態後可以解釋】
* 覆蓋只針對方法,不談屬性
*
*
* @author 14811
*
*/
public class OverrideTest01 {
public static void main(String[] args) {
//創建動物對象
Animal a=new Animal();
a.move();
//創建貓科類動物對象
Cat c=new Cat();
c.move();
//創建飛禽類動物對象
Bird b=new Bird();
b.move();
}
}