因爲最近學習的內容好多都有所相似的地方,自己腦子裏總是感覺很亂,所以今天在這裏梳理一下這兩個知識點,不到位、不準確的地方希望各位看官多多指教、不吝賜教
重載(Overload)
I .定義:在一個類中定義多個相同名稱的方法,即爲重載。
II. 要求:
1)方法名稱相同
2)參數列表不同
3)與訪問修飾符、返回值無關
public class TestOverload{
public static void main(String[] args) {
Student s = new Student();
s.a();
s.a("jack");
s.a("tom", 18);
}
}
class Student{
String name;
int age ;
double score;
***//同一個類中 方法名稱相同 參數列表不同構成重載 (參數類型、個數任何一個不同或者都不相同均構成重載)***
**//與訪問修飾符、返回值類型均無關!!!**
//無參方法
public void a(){
System.out.println("我是老大");
}
//一參方法
public String a(String name ){
System.out.println("老二叫"+name);
return name;
}
//兩參方法
void a(String name , int age){
System.out.println("一個"+age+"歲的"+"老三叫"+name);
}
}
重寫(Override)
I.定義:又稱覆蓋,是子類繼承父類的屬性和方法後,子類的方法可能會因子類自身特點而特殊化,但又是子類所必須具有的方法,因此通過子類繼承父類後,重新寫一個新的方法,來達到覆蓋原有父類方法的目的。
II.要求:
- 方法名、參數表、返回值,必須與父類完全相同。
- 訪問修飾符應與父類相同或比父類更寬泛。
public class TestStudent{
public static void main(String[] args) {
Baby b = new Baby();
b.drink();
}
}
class Father{
String name;
int age ;
public void drink(){
System.out.println("father不需要喝奶");
}
}
class Baby extends Father{
public void drink(){
System.out.println("baby需要喝奶");
}
}