1吧兔、重載是在同一個類中,可聲明多個同名方法袍嬉,但參數(shù)列表不同(參數(shù)順序境蔼,個數(shù),類型)伺通。而重寫是在子類中箍土,對從父類中繼承的方法進行重新編寫,但方法名罐监,參數(shù)列表(參數(shù)順序吴藻,個數(shù),類型)弓柱,返回值類型必須保持一致沟堡。
2疮鲫、重載實現(xiàn)的是編譯時的多態(tài)性(即發(fā)生在同一類中),而重寫實現(xiàn)的是運行時的多態(tài)性(即發(fā)生在繼承關系中)弦叶。
3、重載可以拋出不同的異常, 而重寫可以減少或刪除,但一定不能拋出新的檢查異常妇多。
4伤哺、重載可以有不同的訪問權限修飾符, 而重寫不能擁有比父類方法更加嚴格的訪問權限修飾符。
舉例:
重載
// 重載:方法名相同 參數(shù)不同
public void setStudentInfo(int id, String name){
this.id = id;
this.name = name;
}
public void setStudentInfo(int id, String name, String email){
this.id = id;
this.name = name;
this.email = email;
}
打印結果
學生ID:301 姓名:Jack
學生ID:702 姓名:Jack Ma 郵箱:702@qq.com
重寫
假設有Person類
class Person {
public void show(String name) {
System.out.print(name + "會唱歌");
}
}
在重寫show方法時要繼承父類Person者祖,且參數(shù)列表(參數(shù)順序立莉,個數(shù),類型),返回值類型都要保持一致七问。
public class Student extends Person{
public void show(String name){
//重寫父類Person的show(String name)方法
System.out.print(name+"不僅會唱歌,還會跳舞!");
};
public static void main(String[] args) {
Student s1 = new Student();
s1.show("Pony");
}
}
打印結果
Pony不僅會唱歌,還會跳舞!