java 方法的重載、重寫與重構
- 2020 年 4 月 25 日
- 筆記
首先我們要知道重載、重寫、重構的區別
重載:指的是在同一個類中,方法名相同,但是參數數量、參數類型或者返回類型不同的方法就叫做重載。
重寫:
重寫分兩種、第一種的是在子類繼承父類的情況下,通過@Override註解,子類方法名、參數、返回值全部一樣,方法體不一樣的方法就是重寫。
第二種就是介面實現,實現介面必須實現介面下的所有方法,因為實現方法上也有@Override註解,所以也算是重寫的一種吧。
重構:重構就是在原有的程式碼上,進行優化,使程式碼執行速度更快、或者更簡單易讀。
重載的優點:
1、相同的方法名,傳入不同的參數調用的方法就不一樣。 簡單來說,就是你需要調用哪個方法,就傳入重載對應的參數。
程式碼如下:
1 public class Protected1 { 2 3 /** 4 * 調用重載方法 5 * @param args 6 */ 7 public static void main(String[] args) { 8 test1 test = new test1(); 9 // 在這裡我們可以看到,調用的方法名都是一樣的,只是傳入的參數類型與數量不一樣 10 test.Overload(); 11 System.out.println(test.Overload("重載2")); 12 test.Overload("重載2",3); 13 } 14 } 15 16 17 class test1{ 18 19 public test1() { 20 21 } 22 // 在這我們可以看到,方法名稱都是一樣的,只是方法中參數類型與數量不一樣 23 public void Overload() { 24 System.err.println("重載1"); 25 } 26 27 public String Overload(String str) { 28 return "重載2"; 29 } 30 31 public void Overload(String str,int i) { 32 System.err.println("重載3"); 33 } 34 }
執行結果,程式碼複製即可運行
重寫的優點
個人觀點,如果是子類繼承父類然後重寫父類方法,和子類寫的方法沒什麼區別,雖然說重寫後子類要使用父類方法可以通過super點父類方法名就可以調用,但是何必要那麼用呢。
但是介面就不一樣了,一個實現類可以實現多個介面,增強類的重用性和復用性,擴展性;話不多說,直接看程式碼
public class Protected1 extends test1{ // 這裡調用父類方法,我們可以看到,不用new 直接就可以使用了 public void test() { // 在這裡我們可以看到,調用的方法名都是一樣的,只是傳入的參數類型與數量不一樣 super.Overload(); // 利用super可以調用父類方法 Overload();// 重寫方法之後調用的就是重寫方法 System.out.println(Overload("重載2")); Overload("重載2",3); } //重寫之後的方法 @Override public void Overload() { System.err.println("重寫之後的方法"); } public static void main(String[] args) { Protected1 p = new Protected1(); p.test(); } } class test1{ // 在這我們可以看到,方法名稱都是一樣的,只是方法中參數類型與數量不一樣 public void Overload() { System.err.println("重載1"); } public String Overload(String str) { return "重載2"; } public void Overload(String str,int i) { System.err.println("重載3"); } }