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

java的多態和重寫重載的區別

周雨萌1年前9瀏覽0評論

在Java編程語言中,多態、重載和重寫是常用的面向對象編程的概念。雖然它們都與方法相關,但是它們具有不同的意義和使用方法。

多態是一種特性,允許不同的對象對相同的方法進行調用,在運行時確定對象的類型并執行相應的方法。這是Java編程語言中的一項重要而強大的特性。多態通過繼承和實現接口來實現。以下是多態的示例:

class Animal{
void sound(){
System.out.println("Some sound");
}
}
class Cat extends Animal{
void sound(){
System.out.println("Meow");
}
}
class Dog extends Animal{
void sound(){
System.out.println("Bark");
}
}
class Test{
static void makeSound(Animal a){
a.sound();
}
public static void main(String args[]){
Animal a1 = new Animal();
Animal a2 = new Cat();
Animal a3 = new Dog();
makeSound(a1);//Some sound
makeSound(a2);//Meow
makeSound(a3);//Bark
}
}

在上面的示例中,makeSound() 方法是多態的。這個方法接收一個 Animal 對象,但具體傳遞的是哪個類型的 Animal 對象,最終執行的方法將由傳遞的對象決定。

重載是在同一類中定義多個方法,方法名相同但定義不同的參數類型和個數。在編譯時通過傳遞的參數類型和個數來決定具體的方法,并執行相應的邏輯。以下是重載的一個示例:

class Addition{
static int add(int a, int b){
return a+b;
}
static int add(int a, int b, int c){
return a+b+c;
}
}
class Test{
public static void main(String args[]){
System.out.println(Addition.add(11, 11));  
System.out.println(Addition.add(11, 11, 11));  
}
}

在上面的示例中,我們定義了兩個同名的方法,但是傳遞的參數是不同的。在執行時,根據不同的參數類型和個數來決定具體的方法。

重寫是指在子類中定義一個與父類方法聲明完全相同的方法,覆蓋父類方法的實現。繼承是實現重寫的前提條件。以下是重寫的一個示例:

class Animal{
void sound(){
System.out.println("Some sound");
}
}
class Cat extends Animal{
void sound(){
System.out.println("Meow");
}
}
class Test{
public static void main(String args[]){
Animal a = new Cat();
a.sound(); //Meow
}
}

在上面的示例中,我們定義了一個 Animal 類和一個 Cat 類。Cat 類繼承了 Animal 類并重寫了 sound() 方法。在 main() 方法中,我們使用 Animal 類型的引用來表示 Cat 對象,并調用了 sound() 方法。由于 Cat 類重寫了 sound() 方法,因此輸出將為 "Meow"。