一、Java語言中假設一個類沒有顯式的繼承任何類,那麼該類預設繼承Java SE庫中提供的java.lang.Object類 1.快捷鍵:Ctrl + shift + T:可以在Myeclipse中查找類 2.快捷鍵:Ctrl + shift + R:可以在Myeclipse中查找資源 繼承類舉例: ...
一、Java語言中假設一個類沒有顯式的繼承任何類,那麼該類預設繼承Java SE庫中提供的java.lang.Object類
1.快捷鍵:Ctrl + shift + T:可以在Myeclipse中查找類
2.快捷鍵:Ctrl + shift + R:可以在Myeclipse中查找資源
繼承類舉例:
package com.bjpowernode.java_learning; public class D45_1_ extends Extend1 { public static void main(String[] args) { D45_1_ d1 = new D45_1_(); System.out.println(d1.toString());//說明繼承了JavaSE預設的類 System.out.println(d1.a);//繼承了Extend1這個類,其實繼承就是指把父類的代碼都拿到子類裡面 //不能繼承構造方法和私有實例變數 } } class Extend1 { int a; }
回顧一下:
方法重載和返回值類型,和修飾符列表是沒有關係的。
方法重載的條件:在同一個類中;方法名相同;參數列表不同(包括順序、類型、個數)
二、方法的覆蓋
1.方法覆蓋又被稱為方法重寫,英文名稱:override\overwrite
2.什麼時候使用方法重寫
當父類中的方法已經無法滿足當前子類的業務需求,子類有必要將父類中繼承過來的方法機型重新編寫,這個重新編寫的過程稱為方法重寫/方法覆蓋
3.什麼條件下才會發生方法覆蓋
(1)方法重寫發生在具有繼承關係的父子類之間;
(2)返回值類型相同,方法名相同,形式參數列表相同
(3)方法重寫的時候,訪問許可權不能變得更低,比如:原來的函數是public的,繼承的類必須比public更大,或者平級,不能是protected這種更小的許可權
(4)方法重寫的時候,拋出異常不能更多,可以更少或一樣多。(這個後面再講)
4.建議方法重寫的時候儘量複製粘貼,不要編寫,容易出錯,導致沒有產生覆蓋。
5.註意點:
(1)私有方法不能繼承,所以不能覆蓋;(2)構造方法不能繼承,所以不能覆蓋;(3)靜態方法不存在覆蓋;(4)覆蓋只針對方法不包含屬性變數。
package com.bjpowernode.java_learning; public class D45_2_MethodCover { public static void main(String[] args) { Animal1 a1 = new Animal1(); a1.name = "jfai"; a1.move(); Bird1 b1 = new Bird1(); b1.name = "jfioaweh"; b1.move(); } } class Animal1{ String name; public void move() { System.out.println(this.name+"正在移動"); } } class Bird1 extends Animal1{ public void move() { System.out.println(this.name+"不再移動");//方法重寫, } }
6.生成override的快捷方法:
source-生成方法覆蓋
五、源碼:
D45_1_InheritClassExample.java
D45_2_MethodCover.java
地址:
https://github.com/ruigege66/Java/blob/master/D45_1_InheritClassExample.java
https://github.com/ruigege66/Java/blob/master/D45_2_MethodCover.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料