不同对象调用同名move()接口输出不同结果,体现了面向对象编程的哪项特性?
class Vehicle:
def __init__(self, brand):
self._brand = brand # 私有属性用下划线表示
def set_brand(self, brand):
self._brand = brand
def get_brand(self):
return self._brand
def move(self):
print(f"{self._brand} is moving...")
class Car(Vehicle):
def __init__(self, brand, seat_count):
super().__init__(brand)
self._seat_count = seat_count
def show_info(self):
print(f"This car is a {self.get_brand()} with {self._seat_count} seats.")
def move(self):
print(f"{self.get_brand()} car is driving on the road!")
class Bike(Vehicle):
def __init__(self, brand):
super().__init__(brand)
def move(self):
print(f"{self.get_brand()} bike is cycling on the path!")
def main():
v1 = Car("Toyota", 5)
v2 = Bike("Giant")
v1.move() # 输出: Toyota car is driving on the road!
v2.move() # 输出: Giant bike is cycling on the path!
if __name__ == "__main__":
main()