亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java中composition如何實現多態性

小樊
83
2024-09-24 01:29:01
欄目: 編程語言

在Java中,組合(Composition)是一種結構型設計模式,它允許一個類包含其他類的對象。多態性是指允許不同類的對象對同一消息做出響應。在Java中,多態性通常通過繼承和接口實現。然而,組合也可以實現多態性,通過使用引用類型來指向子類的對象。

以下是一個使用組合實現多態性的示例:

  1. 首先,創建一個基類Animal
public class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound");
    }
}
  1. 然后,創建兩個子類DogCat,它們都繼承自Animal類:
public class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("The dog barks");
    }
}

public class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("The cat meows");
    }
}
  1. 接下來,創建一個AnimalContainer類,它包含一個Animal類型的引用:
public class AnimalContainer {
    private Animal animal;

    public AnimalContainer(Animal animal) {
        this.animal = animal;
    }

    public void setAnimal(Animal animal) {
        this.animal = animal;
    }

    public void performSound() {
        animal.makeSound();
    }
}
  1. 最后,在main方法中,使用AnimalContainer類來展示多態性:
public class Main {
    public static void main(String[] args) {
        AnimalContainer container = new AnimalContainer(new Dog());
        container.performSound(); // 輸出:The dog barks

        container.setAnimal(new Cat());
        container.performSound(); // 輸出:The cat meows
    }
}

在這個示例中,我們使用AnimalContainer類的animal引用來存儲不同類型的子類對象(DogCat)。當我們調用performSound()方法時,實際執行的是子類對象的makeSound()方法,從而實現了多態性。

0
岚皋县| 水城县| 新密市| 蓬溪县| 尼勒克县| 白银市| 永济市| 龙游县| 抚顺县| 彩票| 嘉鱼县| 枣强县| 泸水县| 乌拉特后旗| 新兴县| 白山市| 陆川县| 台东市| 建瓯市| 金堂县| 桑日县| 邢台县| 高邮市| 射洪县| 惠水县| 隆德县| 甘德县| 图木舒克市| 九台市| 海城市| 台东县| 丹江口市| 东兴市| 许昌市| 莱阳市| 平顺县| 吐鲁番市| 电白县| 板桥市| 遂溪县| 乌兰察布市|