重寫(Override)
從字面上看,重寫就是 重新寫一遍的意思,其實就是在子類中把父類本身有的方法重新寫一遍,子類繼承了父類原有的方法,但有時子類并不想原封不動的繼承父類中的某個方法,所以在方法名,引數串列,回傳型別(除過子類中方法的回傳值是父類中方法回傳值的子類時)都相同的情況下, 對方法體進行修改或重寫,這就是重寫,但要注意子類函式的訪問修飾權限不能少于父類的,
public class Father {
public static void main(String[] args) {
// TODO Auto-generated method stub
Son s = new Son();
s.sayHello();
}
public void sayHello() {
System.out.println("Hello");
}
}
class Son extends Father{
@Override
public void sayHello() {
// TODO Auto-generated method stub
System.out.println("hello by ");
}
}
重寫 總結: 1.發生在父類與子類之間 2.方法名,引數串列,回傳型別(除過子類中方法的回傳型別是父類中回傳型別的子類)必須相同 3.訪問修飾符的限制一定要大于被重寫方法的訪問修飾符(public>protected>default>private) 4.重寫方法一定不能拋出新的檢查例外或者比被重寫方法申明更加寬泛的檢查型例外
多載(Overload)
在一個類中,同名的方法如果有不同的引數串列(引數型別不同、引數個數不同甚至是引數順序不同)則視為多載,同時,多載對回傳型別沒有要求,可以相同也可以不同,但不能通過回傳型別是否相同來判斷多載,
public class Father {
public static void main(String[] args) {
// TODO Auto-generated method stub
Father s = new Father();
s.sayHello();
s.sayHello("wintershii");
}
public void sayHello() {
System.out.println("Hello");
}
public void sayHello(String name) {
System.out.println("Hello" + " " + name);
}
}
多載 總結: 1.多載Overload是一個類中多型性的一種表現 2.多載要求同名方法的引數串列不同(引數型別,引數個數甚至是引數順序) 3.多載的時候,回傳值型別可以相同也可以不相同,無法以回傳型別作為多載函式的區分標準
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/499013.html
標籤:Java
上一篇:【機器學習】支持向量機分類
