阿摩線上測驗 登入

申論題資訊

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

申論題內容

四、在物件導向程式語言的設計中,覆寫(overriding)和多載(overloading) 有何不同?請舉例並說明其不同之處。(20 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
覆寫(Overriding)和多載(Overloading)
在物件導向程式語言中,覆寫(Overriding)和多載(Overloading)是兩個常見且重要的概念。它們在方法定義和調用上有不同的用途和行為。
覆寫(Overriding)
覆寫是指在子類中重新定義從父類繼承的方法。這意味著子類提供了該方法的具體實現,並且這個實現將取代父類中的版本。
覆寫的特點:
必須有相同的方法名稱、參數和返回類型。
用於實現多態性,使得子類可以根據需要改變或擴展父類的方法行為。
Python 中的覆寫示例:
python
複製程式碼
class Parent:
    def show(self):
        print("Parent's show method")
class Child(Parent):
    def show(self):
        print("Child's show method")
# 創建對象
parent = Parent()
child = Child()
parent.show()  # Output: Parent's show method
child.show()   # Output: Child's show method
在這個例子中,Child 類覆寫了 Parent 類的 show 方法,因此當調用 child.show() 時,執行的是 Child 類中的 show 方法。
多載(Overloading)
多載是指在同一個類中定義多個方法,這些方法具有相同的名稱但不同的參數列表(參數個數或參數類型不同)。Python 不直接支持方法多載,但可以通過可變參數或關鍵字參數來模擬。
多載的特點:
方法名稱相同,但參數列表不同。
用於增強方法的靈活性,允許方法根據不同的參數集來執行不同的操作。
Python 中的多載示例(通過可變參數模擬):
python
複製程式碼
class Example:
    def add(self, a, b, c=0):
        return a + b + c
# 創建對象
example = Example()
print(example.add(1, 2))      # Output: 3
print(example.add(1, 2, 3))   # Output: 6
在這個例子中,add 方法具有可選參數 c,允許我們使用不同數量的參數調用同一個方法。