阿摩線上測驗 登入

申論題資訊

試卷: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; } }

申論題內容

⑵上列程式定義的 2 個類別的 5 個 print 方法中,那一個的型態部分會造成編譯錯誤? 為什麼?(6 分)

詳解 (共 1 筆)

詳解 提供者:114年高考上榜
在上述程式中,有一個 print 方法的型態部分會造成編譯錯誤,那就是 Child 類別中的 int print() 方法,因為在 Java 中,覆寫(overriding)一個方法時,其傳回值型態必須相容於父類別中所定義的方法。在 Parent 類別中,print() 方法的傳回值型態是 void,但在 Child 類別中,print() 方法的傳回值型態是 int,這樣就會造成編譯錯誤