阿摩線上測驗 登入

申論題資訊

試卷:94年 - 94 司法特種考試_三等_檢察事務官電子資訊組:程式語言#39688
科目:程式語言
年份:94年
排序:0

申論題內容

三、請以任何一程式語言舉例並說明物件導向程式語言(object-oriented programming languages)之資料抽象化(data abstraction)、繼承(inheritance)及動態繫結(dynamic binding)性質。(20 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
在物件導向程式設計(Object-Oriented Programming,OOP)中,資料抽象化(Data Abstraction)、繼承(Inheritance)和動態繫結(Dynamic Binding)是三個重要的概念。以下是使用 Python 程式語言的例子來解釋這些概念:
1. 資料抽象化(Data Abstraction)
資料抽象化是指隱藏物件的內部實現,只暴露出操作物件的介面。這樣可以減少程式的複雜性,提高可維護性。
範例:
python
複製程式碼
class Car:
    def __init__(self, make, model, year):
        self.__make = make    # 私有屬性
        self.__model = model  # 私有屬性
        self.__year = year    # 私有屬性
    def get_details(self):
        return f"{self.__year} {self.__make} {self.__model}"
    def start_engine(self):
        return "Engine started"
# 使用範例
my_car = Car("Toyota", "Camry", 2020)
print(my_car.get_details())  # 輸出: 2020 Toyota Camry
print(my_car.start_engine()) # 輸出: Engine started
在這個例子中,Car 類別將 __make、__model 和 __year 定義為私有屬性,這些屬性不能在類別外部直接存取,只能通過 get_details 和 start_engine 方法來操作,這就是資料抽象化。
2. 繼承(Inheritance)
繼承是指一個類別(子類別)可以繼承另一個類別(父類別)的屬性和方法,從而實現代碼的重用和擴展。
範例:
python
複製程式碼
class Vehicle:
    def __init__(self, make, model):
        self.make = make
        self.model = model
    def get_info(self):
        return f"{self.make} {self.model}"
class Car(Vehicle):  # Car 類別繼承自 Vehicle 類別
    def __init__(self, make, model, year):
        super().__init__(make, model)
        self.year = year
    def get_details(self):
        return f"{self.year} {self.get_info()}"
# 使用範例
my_car = Car("Toyota", "Camry", 2020)
print(my_car.get_details())  # 輸出: 2020 Toyota Camry
在這個例子中,Car 類別繼承了 Vehicle 類別,並擴展了 __init__ 方法和 get_details 方法,這就是繼承的概念。