抽象類別透過繼承使子類擁有相同的規格,使用多態性來操作這些物件可以方便地維護和擴充程式。這些特性使得系統更具彈性和可擴展性,符合面向對象設計的原則。
抽象類別(Abstract Class)
定義:
抽象類別是一種不能實例化的類別,它包含至少一個抽象方法(沒有具體實現的方法)。抽象類別用於定義一組方法的規格,供子類實現。
實作方式
繼承(Inheritance):
透過繼承,子類(Derived Class)從抽象類別(Abstract Class)獲得相同的規格(方法定義),並實現這些方法。
操作方法
多態性(Polymorphism):
定義:多態性允許不同的子類對同一方法做出不同的實現。
操作:可以使用抽象類別型別的參考變數來操作不同子類的實例,從而實現靈活的對象操作和擴充性。
示例
抽象類別與抽象方法
python
複製程式碼
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def make_sound(self):
pass
子類繼承與方法實現
python
複製程式碼
class Dog(Animal):
def make_sound(self):
return "Bark"
class Cat(Animal):
def make_sound(self):
return "Meow"
使用多態性操作物件
python
複製程式碼
def animal_sound(animal: Animal):
print(animal.make_sound())
dog = Dog()
cat = Cat()
animal_sound(dog) # Output: Bark
animal_sound(cat) # Output: Meow