在Python中,多態(tài)性是指不同類的對象可以使用相同的方法名稱,但具有不同的實現(xiàn)。這意味著我們可以使用一個通用的接口來處理不同類型的對象,而不需要知道它們的具體實現(xiàn)細節(jié)。多態(tài)性提高了代碼的可擴展性和可維護性。
在Python中,多態(tài)性主要通過繼承和重寫父類方法來實現(xiàn)。當子類繼承父類時,子類會自動獲得父類的所有屬性和方法。子類可以選擇保留父類的方法,或者重寫(override)它們以提供新的實現(xiàn)。這樣,我們可以使用父類的引用來調(diào)用子類的方法,而不需要知道具體的子類實現(xiàn)。
下面是一個簡單的例子,展示了如何使用多態(tài)性來處理不同類型的圖形:
class Shape:
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * (self.radius ** 2)
def print_area(shape):
print("Area:", shape.area())
rectangle = Rectangle(3, 4)
circle = Circle(5)
print_area(rectangle) # 輸出:Area: 12
print_area(circle) # 輸出:Area: 78.5
在這個例子中,Rectangle
和Circle
類都繼承了Shape
類,并重寫了area
方法。我們定義了一個print_area
函數(shù),它接受一個Shape
類型的參數(shù),并調(diào)用其area
方法。由于多態(tài)性,我們可以傳遞Rectangle
或Circle
對象給print_area
函數(shù),而不需要修改函數(shù)的實現(xiàn)。這就是Python中多態(tài)性的體現(xiàn)。