溫馨提示×

Java多態性如何實現

小樊
103
2024-10-31 06:49:51
欄目: 編程語言

Java多態性是通過繼承、接口和方法重寫實現的。多態性允許我們使用一個共同的接口表示不同類型的對象,從而在運行時根據對象的實際類型調用相應的方法。這是通過編譯器在運行時解析方法調用的實現的。

以下是Java多態性的實現方式:

  1. 繼承:子類繼承父類的屬性和方法,可以重寫父類的方法。這樣,當我們使用父類引用指向子類對象時,可以調用子類的重寫方法。
class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("The dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Dog(); // 使用父類引用指向子類對象
        myAnimal.makeSound(); // 輸出 "The dog barks"
    }
}
  1. 接口:接口定義了一組方法的簽名,但不包含實現。類可以實現一個或多個接口,從而實現多態性。
interface Flyable {
    void fly();
}

class Bird implements Flyable {
    @Override
    public void fly() {
        System.out.println("The bird is flying");
    }
}

class Airplane implements Flyable {
    @Override
    public void fly() {
        System.out.println("The airplane is flying");
    }
}

public class Main {
    public static void main(String[] args) {
        Flyable myFlyable = new Bird(); // 使用接口引用指向實現類對象
        myFlyable.fly(); // 輸出 "The bird is flying"

        myFlyable = new Airplane(); // 使用相同的接口引用指向另一個實現類對象
        myFlyable.fly(); // 輸出 "The airplane is flying"
    }
}
  1. 方法重寫:在子類中重寫父類的方法,以實現不同的功能。當我們使用父類引用指向子類對象并調用該方法時,將執行子類的重寫版本。
class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("The dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Dog(); // 使用父類引用指向子類對象
        myAnimal.makeSound(); // 輸出 "The dog barks"
    }
}

通過這些方式,Java多態性允許我們編寫更加靈活和可擴展的代碼。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女