两者之间有什么区别?
具有explorer()的超类和具有相同方法的继承类,这是重写还是多态?
我清楚b / w覆盖和重载的区别,但多态性和覆盖似乎相同。还是他们?
class A:
def explore(self):
print("explore() method from class A")
class B(A):
def explore(self):
super().explore() # calling the parent class explore() method
print("explore() method from class B")
b_obj = B()
b_obj.explore()
答案 0 :(得分:1)
多态是一个广泛的概念,其中包括重载和重载等等。它只是对象提供多种行为的能力。
重载和重载是如何实现多态的两个示例。
以下相关问题可能会有用:
Are polymorphism, overloading and overriding similar concepts?
答案 1 :(得分:1)
Overriding-子类中具有相同签名(名称,加上数字和参数的类型)的实例方法,并且作为超类中实例方法的返回类型将覆盖超类的方法。
多态性可以通过覆盖来实现。
一个类的子类可以定义自己的独特行为,但可以共享父类的某些相同功能。多态是在运行时不确定对象类型的地方,并且会调用最特定的方法。因此,所调用方法的行为可能会有所不同,具体取决于运行时对象的类型。