Java是一種面向?qū)ο蟮木幊陶Z言,支持方法重載和方法重寫兩種特性。
方法重載指的是在同一個(gè)類中定義了多個(gè)具有相同名字但參數(shù)類型、個(gè)數(shù)、順序不同的方法。當(dāng)調(diào)用該方法時(shí),編譯器會(huì)根據(jù)傳入的參數(shù)類型和個(gè)數(shù)自動(dòng)選擇合適的方法進(jìn)行調(diào)用。例如:
public void print(String str){ System.out.println(str); } public void print(int i){ System.out.println(i); } public void print(double d){ System.out.println(d); } public void print(String str1, String str2){ System.out.println(str1 + str2); }
如果我們調(diào)用print方法,傳入一個(gè)字符串,那么第一個(gè)print方法就會(huì)被調(diào)用;如果傳入一個(gè)整數(shù),那么第二個(gè)print方法就會(huì)被調(diào)用;如果傳入一個(gè)浮點(diǎn)數(shù),那么第三個(gè)print方法就會(huì)被調(diào)用;如果傳入兩個(gè)字符串,那么第四個(gè)print方法就會(huì)被調(diào)用。這就是方法重載的實(shí)現(xiàn)方法。
方法重寫指的是在子類中定義了與父類具有相同名字、參數(shù)列表和返回類型的方法。當(dāng)調(diào)用該方法時(shí),子類中的方法就會(huì)覆蓋父類中的方法,實(shí)現(xiàn)了自己的邏輯功能。例如:
public class Animal { public void eat(){ System.out.println("吃東西"); } } public class Cat extends Animal{ public void eat(){ System.out.println("吃魚"); } }
在Animal類中定義了一個(gè)eat方法,在Cat類中也定義了一個(gè)eat方法,并且它們的名字、參數(shù)列表和返回類型都相同。如果我們創(chuàng)建一個(gè)Cat對(duì)象并調(diào)用eat方法,那么輸出就是“吃魚”,因?yàn)镃at類中的eat方法覆蓋了Animal類中的eat方法,實(shí)現(xiàn)了自己的邏輯功能。
因此,在使用Java編程時(shí),方法重載和方法重寫是非常重要的特性,可以幫助我們更好地組織代碼,使程序具有更好的可讀性和可維護(hù)性。