阿摩線上測驗 登入

申論題資訊

試卷:107年 - 107 專技高考_資訊技師:系統分析與資訊安全#72845
科目:系統分析與資訊安全
年份:107年
排序:0

申論題內容

二、物件導向之抽象類別(Abstract Class)是一種不能實體化的類別,其抽 象方法(Abstract Method)則只定義規格卻沒有實作的方法,因此抽象 類別使用時機為需要定義規格供其他類別使用時。請問其實作方式需透 過物件導向的那一種特性讓前來實作的類別擁有相同的規格?使用何 種操作方法來操作物件以方便維護與擴充程式?(20 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
抽象類別透過繼承使子類擁有相同的規格,使用多態性來操作這些物件可以方便地維護和擴充程式。這些特性使得系統更具彈性和可擴展性,符合面向對象設計的原則。
 

抽象類別(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