免費開始練習
moea_joint_essay 109年 [統計資訊] 資料庫及資料探勘、程式設計

第 二 題

📖 題組:
給定物件導向程式碼如下:(共 2 題,共 10 分) class A { public int a0; private int a1; public void m1( ) {a1 = 1;} public void m1(int x) {a1 = x;} public void m2( ) {a1 = 3;} } class B extends A { private int b1; private int b2; public void m2( ) {b1 = 5; b2 = 2;} public void m3( ) {a0=m1(b1);} }
📝 此題為申論題,共 2 小題

小題 (二)

請以 class A、class B 說明以下概念:(4 分)
(1)覆寫(overriding)(2 分)
(2)超載(overloading)(2 分)

思路引導 VIP

覆寫是子類改變父類的同名同參數方法(m2);超載是同一個類別內有同名但參數不同的方法(m1)。

🤖
AI 詳解
AI 專屬家教

(1) 覆寫(overriding):發生在具有繼承關係的子類與父類之間,子類別重新定義父類別中同名且參數列完全相同的方法。例如:class B 中定義了 public void m2( ),覆寫(蓋掉)了其父類 class A 中的 public void m2( ) 的原本實作內容。 (2) 超載(overloading):發生在同一個類別(或繼承系內),允許存在多個名稱相同但「傳入參數個數」或「資料型別」不同的方法。例如:在 class A 之中,定義了沒有參數的 public void m1( ) 與接收一個整數參數的 public void m1(int x),此兩者即構成了方法超載。

小題 (一)

請以 class A 說明以下概念:(6 分)
(1)封裝(encapsulation)(3 分)
(2)繼承(inheritance)(3 分)

思路引導 VIP

說明封裝是隱藏實作細節,以private及public介面呈現;繼承是衍生類別沿用父類別的功能。

🤖
AI 詳解
AI 專屬家教

(1) 封裝(encapsulation):指將物件的內部狀態與行為包裝起來,隱藏其具體實作細節,僅對外提供公開介面。在程式碼中,class A 透過宣告 private int a1 將成員變數設為私有,外部程式無法直接存取或修改,必須透過開放的 public void m1( ) 等方法才能進行操作,此即落實封裝精神。 (2) 繼承(inheritance):指子類別可自動擁有父類別公開或保護屬性的機制,以達到程式碼重複使用。在程式碼中,class B extends A 表示類別 B 繼承了類別 A,使得類別 B 雖未宣告 a0m1( ),但其實例化物件依舊可直接呼叫並存取類別 A 中標註為 public 的變數 a0 以及方法 m1()

🏷️ 相關主題

程式設計演算法與資料結構實作
查看更多「[統計資訊] 資料庫及資料探勘、程式設計」的主題分類考古題