歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java 方法的重寫與重載

Java 中方法的重載與重寫

重載:

1.方法名不相同,參數不同(同名不同參)

(1).注意:這裡的不同參包括(參數類型不同、參數個數不同、參數順序不同)

(2).返回值類型沒有要求(可以是void、int、String等)

(3).修飾符沒有要求(可以是public、private等)

2.發生在同一個類中

可以參照下面一段代碼進行理解

public class ReLoadAdd {
public void add(long a,int b){//add()方法
int c = (int)a+b;
System.out.println(c);
}
//重載add()方法,與add()參數類型不同
private void add(int a,int b){
int  c = a+b;
System.out.println(c);
}
//重載add()方法,與add()參數個數不同這裡有三個參數
protected void add(long a,int b,int c){
int d = (int)a+b+c;
System.out.println(c);
}
//重載add()方法,與add()參數順序不同,修飾符為默認
void add(int b,long a){
int c = (int)a+b;
}
}

重寫

1.發生在父子類中,子類對父類的方法進行重寫

2.同名並且同參,返回值類型也應相同

3.子類方法的修飾符不能比父類方法的修飾符更封閉(要不和父類修飾符相同,要麼比父類修飾符更寬泛)

4.子類拋出的異常類型不能比父類拋出的異常更寬泛

下面寫一個ReLoadAdd的子類叫ReWriteAdd,完成對父類add()方法的重寫 

public class ReWriteAdd extends ReLoadAdd{
//  對父類第一個方法add()的重寫,修飾符只能為public如果該沒其他的報錯,是第三條的印證
public void add(long a,int b){
int c = (int)a+b;
System.out.println(c);
}
//  對父類ReLoadAdd第二個add()方法的重寫,父類修飾符為protected,所以子類可以為(protected、public)這裡為protected
public void add(long a,long b){
long c = a+b;
System.out.println(c);
}
//  對父類ReLoadAdd第三個add()方法的重寫,父類修飾符為protected,所以子類可以為(protected、public)這裡為protected
protected void add(long a,int b,int c){
int d = (int)a+b+c;
System.out.println(d);
}
}

Copyright © Linux教程網 All Rights Reserved