介面 多型練習題

2021-08-22 04:55:57 字數 924 閱讀 3213

輸出下面程式結果:

inte***ce

a{}class

bimplements a}

class

demo

}

執行結果:the method func() is undefined for the type a

分析:a a = new b();實現了多型,此時父類的引用指向子類的物件,

相當於:

動物 a=new 狗();//這就為向上轉型 a.發聲(); // 物件a可以使用動物中的發聲()或其他方法,但不可以呼叫狗的方法。 a a

= new a();例項化乙個父類的物件a 動物 a=new 狗();狗b=(狗)a;//這裡是向下轉型 這時b可呼叫動物類未被重寫的方法和狗類所有方法(包括重寫動物類的方法)

當呼叫a.func()時,不能呼叫b中的方法,由於a中沒有此方法,所以找不到(the method func() is undefined for the type a)

解決辦法:

在介面中新增func();宣告

inte***ce a
或者把b向下轉型

a  a = new b();

b b = (b) a;//向下轉型

system.out.println(b.func());

類似的有

public

class

demo10_3

public

static

void main(string args)

}inte***ce

aaclass

bbimplements

aa}

介面練習題

編寫 模擬上述場景 1 設計抽象類student 屬性包括姓名 name 學費 fee 方法包括 構造方法student string name 抽象方法void setfee int fee 抽象方法int getfee 2 定義乙個介面salary 包含乙個方法int getsalary 3 定...

物件導向練習題 介面,異常,多型,equals,

題目 建立乙個圖形介面,宣告乙個面積函式,圓形和矩形都實現這個介面,並得出兩個圖形的面積 注 體現物件導向的特徵,對數值進行判斷,用異常處理,不合法的數值要出現 這個數值是非法的提示 不再進行運算。package com.rqy.day13 建立乙個圖形介面,宣告乙個面積函式,圓形和矩形都實現這個介...

多型練習題理解1

1.若子類重寫了父類的方法,就意味著子類中重寫的方法完全覆蓋了父類中的方 法,系統將不可能把父類中的方法轉移到子類中,編譯看左邊,執行看右邊 2.對於例項變數則不存在這樣的現象,即使子類裡定義了與父類中完全相同的實 例變數,這個例項變數依然不可能覆蓋父類中的例項變數,編譯執行都看左邊。public ...