中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
遂昌县| 延寿县| 武宁县| 黎平县| 榕江县| 武平县| 喀什市| 彭山县| 扎兰屯市| 乐陵市| 昌黎县| 阳东县| 无锡市| 文昌市| 波密县| 金山区| 旌德县| 江油市| 梧州市| 马龙县| 和政县| 富宁县| 都匀市| 宜春市| 南靖县| 五台县| 油尖旺区| 环江| 酒泉市| 溆浦县| 阿荣旗| 霍城县| 高唐县| 温泉县| 来安县| 景泰县| 永昌县| 邵阳县| 元阳县| 民勤县| 翼城县|