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