阿摩線上測驗 登入

申論題資訊

試卷:101年 - 101 高等考試_三級_資訊處理:程式語言#26526
科目:程式語言
年份:101年
排序:0

題組內容

三、以下 Java 程式片段試圖定義兩個有繼承關係的類別(classes),Parent 與 Child,以 及 5 個 print 方法(註解中標示的 A, B, C, D, E): class Parent { public void print() { // A System.out.println( "In Parent" ); } public void print( String message ) { // B System.out.println( "In Parent" + ' ' + message ); } } class Child extends Parent { public void print( int value ) { // C System.out.println( "In Child" + ' ' + value ); } public void print( String message ) { // D System.out.println( "In Child" + ' ' + message ); } public int print() { // E System.out.println( "In Child" ); return 5; } }

申論題內容

⑴多載(overloading)與覆寫(overriding)是關於 print 方法的兩個不同的機制,請 以上列程式中定義的 5 個 print 方法,說明那幾個是覆寫?那幾個是多載?為什 麼?(請以 A, B, C, D, E 方式作答)(15 分)

詳解 (共 1 筆)

詳解 提供者:114年高考上榜
覆寫是子類別重新定義父類別的方法,以便改變其行為。多載是在同一個類別中定義多個方法,方法名相同但參數列表不同。以下是對於上述程式中的 5 個 print 方法的分析:
 
A:覆寫。子類別 Child 沒有重新定義此方法,但它繼承自父類別 Parent。
B:覆寫。子類別 Child 重新定義了此方法,方法名和參數列表和父類別 Parent 的方法相同。
C:多載。子類別 Child 定義了一個新的方法,叫做 print,但參數列表不同於父類別 Parent 的任何方法。
D:覆寫。子類別 Child 重新定義了此方法,方法名和參數列表和父類別 Parent 的方法相同。
E:覆寫。子類別 Child 重新定義了此方法,方法名和參數列表和父類別 Parent 的方法相同,但返回值不同。
因此,A 是覆寫、B 是覆寫、C 是多載、D 是覆寫、E 是覆寫。