欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java的重寫和覆蓋

在Java中,有兩種方式可以實(shí)現(xiàn)方法的重新定義,分別是重寫和覆蓋。

重寫(overriding)是指在子類中定義了一個(gè)與父類中具有相同名稱、參數(shù)列表和返回類型的方法,這個(gè)方法將覆蓋父類中的同名方法,使得在調(diào)用該方法時(shí)實(shí)際執(zhí)行的是子類的方法。

public class Animal {
public void move() {
System.out.println("Animal can move");
}
}
public class Dog extends Animal {
public void move() {
System.out.println("Dog can move");
}
}

以上代碼中,Dog類重寫了Animal類的move()方法。當(dāng)我們調(diào)用Dog類的move()方法時(shí),實(shí)際執(zhí)行的是Dog類中的方法,輸出“Dog can move”。

覆蓋(overloading)是指在同一個(gè)類中定義多個(gè)方法,這些方法具有相同名稱但參數(shù)列表不同的特點(diǎn)。Java在調(diào)用這些方法時(shí)會根據(jù)傳遞的參數(shù)自動選擇最匹配的方法進(jìn)行執(zhí)行。即使是父類的同名方法和子類的方法也并不會相互干擾。

public class Calculation {
public int add(int x, int y) {
return x + y;
}
public double add(double x, double y) {
return x + y;
}
}
public class Main {
public static void main(String[] args) {
Calculation cal = new Calculation();
System.out.println(cal.add(1, 2));        // 輸出3
System.out.println(cal.add(1.5, 2.5));    // 輸出4.0
}
}

以上代碼中,Calculation類定義了兩個(gè)add()方法,一個(gè)接收兩個(gè)整型參數(shù),一個(gè)接收兩個(gè)double類型參數(shù)。在調(diào)用這些方法時(shí),根據(jù)傳遞的參數(shù)類型自動匹配最匹配的方法進(jìn)行執(zhí)行。

總體來說,重寫是針對繼承的,父類和子類之間的方法名相同,方法的返回類型和參數(shù)也相同,但是方法的實(shí)現(xiàn)不同;而覆蓋是針對方法重載的,同一個(gè)類中方法名相同,但參數(shù)列表不同,針對不同的參數(shù)列表,執(zhí)行不同的方法。