gpt4 book ai didi

java - 了解多态性

转载 作者:行者123 更新时间:2023-12-01 18:42:50 24 4
gpt4 key购买 nike

在我的类层次结构中,有一个名为“媒体类型”的父类(super class)。“声音”和“图像”是两个子类对于声音类和图像类,我都希望有一个方法作为 quality()。但是方法quality()在声音类和图像类下使用时的工作方式是不同的。什么我想知道是在父类(super class)“媒体类型”中我可以添加两个具有相同名称的方法quality(),它根据对象类型(无论是声音还是图像类型对象)决定哪个quality() 方法应该可以运行。这就是所谓的多态性吗?

最佳答案

What I want to know is is in the superclass "Media type" can I add two methods with the same name quality(),which according to the object type(whether it is sound or image type object) decides which quality() method should be functioned.

好了,您已经部分了解了多态性。多态性的美妙之处在于您不需要需要两种方法 - 您只需要一个。在父类中定义方法quality(),然后在每个子类中实现具体行为。如果您有一些 Media 对象,您可以对它们全部调用 quality() - 在运行时,将调用正确的具体类的实现。

ArrayList<Media> m = new ArrayList<>();
m.add(new Sound());
m.add(new Image());

for(Media obj: m) {
obj.quality(); // polymorphism in action!
}

尝试一下。祝你好运!

关于java - 了解多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19205782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com