Java 理解多态性

Java 理解多态性,java,class,oop,Java,Class,Oop,在我的类层次结构中,有一个名为“媒体类型”的超类“声音”和“图像”是它的两个子类。对于声音和图像类,我都希望有一个方法作为质量()。但是方法质量()在sound类和image类下使用时工作。我想知道的是,在超类“Media type”中,我可以添加两个同名quality()的方法吗?quality()根据对象类型(是sound类还是image类对象)决定应该使用哪个quality()方法。这就是所谓的多态性吗?将名为quality()的方法添加到MediaType类中,然后在Sound和Imag

在我的类层次结构中,有一个名为“媒体类型”的超类“声音”和“图像”是它的两个子类。对于声音和图像类,我都希望有一个方法作为质量()。但是方法质量()在sound类和image类下使用时工作。我想知道的是,在超类“Media type”中,我可以添加两个同名quality()的方法吗?quality()根据对象类型(是sound类还是image类对象)决定应该使用哪个quality()方法。这就是所谓的多态性吗?

将名为
quality()
的方法添加到
MediaType
类中,然后在
Sound
Image
类中重写它。这样,无论何时调用任何
MediaType
,都会调用每个对象(
Sound
Image
)的右侧
quality()
方法。是的,它是这样的多态性。

您将名为
quality()
的方法添加到
MediaType
类中,然后在
Sound
Image
类中重写它。这样,无论何时调用任何
MediaType
,都会调用每个对象(
Sound
Image
)的右侧
quality()
方法。是的,就是这样

我想知道的是在超类“Media type”中我可以添加两个吗 具有相同名称quality()的方法,该方法根据对象 类型(是声音类型对象还是图像类型对象)决定哪种质量() 方法应该是函数

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

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

for(Media obj: m) {
    obj.quality();  // polymorphism in action!
}
ArrayList m=new ArrayList();
m、 添加(新声音());
m、 添加(新图像());
用于(媒体对象:m){
obj.quality();//多态性在起作用!
}
试试看。祝你好运

我想知道的是在超类“Media type”中我可以添加两个吗 具有相同名称quality()的方法,该方法根据对象 类型(是声音类型对象还是图像类型对象)决定哪种质量() 方法应该是函数

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

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

for(Media obj: m) {
    obj.quality();  // polymorphism in action!
}
ArrayList m=new ArrayList();
m、 添加(新声音());
m、 添加(新图像());
用于(媒体对象:m){
obj.quality();//多态性在起作用!
}

试试看。祝你好运

我是一名初级程序员,但我也许能帮你一点忙。
据我所知,多态性是一个类表现为有两种不同类型的能力。编译时(当前类型)类型和运行时(true类型)类型。如果有声音类型实例并将其分配给媒体类型实例,则其运行时类型将是声音,但其编译时类型将是媒体。这意味着要调用一个方法,该方法将需要存在于编译时类型类(media)中,但实际调用的方法将是与运行时类(sound)中包含的功能相同的方法。

我是一个初级程序员,但我可能能够帮到您一点忙。
据我所知,多态性是一个类表现为有两种不同类型的能力。编译时(当前类型)类型和运行时(true类型)类型。如果有声音类型实例并将其分配给媒体类型实例,则其运行时类型将是声音,但其编译时类型将是媒体。这意味着要调用一个方法,该方法需要存在于编译时类型类(media)中,但实际调用的方法将是运行时类(sound)中包含的具有相同功能的方法。

这是多态性的一个示例:

您有一个通用(父)类,其中存在
method()
,您添加了子类(inherit),其中存在相同的
method()
,但可能被重写


对于上面的所有类,您可以调用
method()
,并将调用相应的
method()

这是多态性的一个示例:

您有一个通用(父)类,其中存在
method()
,您添加了子类(inherit),其中存在相同的
method()
,但可能被重写


对于上面的所有类,您都可以调用
method()
,并将调用相应的
method()

为什么不试试,而不是询问?它会给你更多的洞察力为什么你不试试而不是问?它将给你更多的见解,而不是多态性是什么。字典中多态性的定义是指生物学中的一个原则,即一个有机体或物种可以有许多不同的形式或阶段。这一原则也可以应用于面向对象编程和Java语言等语言。一个类的子类可以定义自己独特的行为,但也可以共享父类的一些相同功能。我认为您可能会误以为这些类在运行时和编译时的行为不同。如果您不知道答案,然后不要回答这个问题。那不是多态性是什么。字典中多态性的定义是指t