標籤:方法重載 方法重寫 this關鍵字 super關鍵字
方法重載與方法重寫、this關鍵字和super關鍵字
1、方法重載
重載能夠使具有相同名稱但不同數目和型別參數的類傳遞給方法。
註:
一是重載方法的參數列表必須與被重載的方法不同,並且這種不同必須足以清楚地確定要調用哪一個方法;
二是重載方法的返回值類型可以與被重載的方法相同,也可以不同,但是只有返回值類型不同不能表示為重載。
例如,最常用的println()方法在JDK的java.io.PrintStream中定義了十幾種形式的重載,常用格式如下:
public void println(int i) {....}
public void println(double i) {....}
public void println(String i) {....}
/********************************************************** * "方法重載"的使用方法及其範例程式碼*/public class OverloadRewrite{void num(int i){System.out.println("接收到的是int型別參數,其值="+i);}void num(float j){System.out.println("接收到的是float型別參數,其值="+j);}void num(String k){System.out.println("接收到的是String型別參數,其值="+k);}public static void main(String [] args) {OverloadRewrite a=new OverloadRewrite();a.num(100);a.num(100.20f);a.num("Hello!");}}
2、方法重寫
當子類繼承父類時,可以擁有父類中的成員方法和成員變數,在子類建立專屬的成員即可。但是,如果建立一個與父類中相同名稱、相同返回值類型、相同參數列表的方法,只是方法體中的實現不同,以實現不同於父類的功能,這種方式被稱為方法重寫或方法覆蓋。
註:
一是返回值類型與參數列表必須與被重寫的返回值類型和參數列表相同,否則不能稱為重寫;
二是存取修飾詞的限制一定要大於被重寫方法的存取修飾詞(public > protected > default > private);
三是重寫方法一定不能拋出新的檢查異常或者比被重寫方法聲明更加寬泛的檢查型異常。例如,父類的一個方法聲明了一個檢查異常IOException,在重寫這個方法時,就不能拋出Exception,只能拋出IOException的子類異常,可以拋出非檢查異常。
/********************************************************** * "方法重寫"的使用方法及其範例程式碼*/public class OverloadRewrite{public String Name;public String Address;public OverloadRewrite(String name,String address) {//構造方法this.Name=name;this.Address=address;}public String toString() {//重寫toStringreturn "我的名字是:"+Name+",產地是:"+Address;}public class sichuancai extends OverloadRewrite{//繼承public String Detail;public sichuancai(String name,String address,String detail){//構造方法super(name, address);//super調用父類相應的構造方法this.Detail=detail;}}//public String toString() {//重寫toString//return "我的名字是:"+Name+",產地是:"+Address+",特點是:"+this.Detail;//}public static void main(String [] args) {OverloadRewrite food=new OverloadRewrite("麵條", "意大利");System.out.println(food);sichuancai sichuan=food.new sichuancai("麻辣燙", "成都", "麻辣和香辣");System.out.println(sichuan);}}
3、this關鍵字
this關鍵字可用於在任何執行個體方法內指向當前對象,也可指向對其調用當前方法的對象,或者在需要當前類型對象引用時使用。
註:當一個類的屬性名稱或成員變數與訪問該屬性的方法參數名相同時,則需要使用this關鍵字來訪問類中的屬性,以區分類的屬性和方法中的參數。
4、super關鍵字
由於子類不能繼承父類的構造方法,因此要調用父類的構造方法,必須在子類的構造方法的第一行使用super()。
super()方法會調用父類相應的構造方法,完成子類對象的部分初始化工作。
註:程式在以下兩種情況下需要使用super()關鍵字:
一是在類的構造方法中,通過super語句調用該類的父類的構造方法。
二是在子類中訪問父類中的成員。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
JAVA學習(七):方法重載與方法重寫、this關鍵字和super關鍵字