※ 引述《deepdish.bbs@binary.csie.ncu.edu.tw (資管四霸征服天下)》之銘言:
> ※ 引述《redbug.bbs@bbs.ice.cycu.edu.tw (雙面虎)》之銘言:
> 程式碼如下 請各位高手幫幫忙
> class Parent {
> int i = 30;
> int sum(int j) {
> return i+j;
> }
> int sum(){ return 333; } // 我不去掉
> }
> class Child extends Parent {
> int i = 10;
> ////////////////////////////////////////////////////
> // int sum() { // 但是去掉這段,就可以編譯了 //
> // return this.i + super.i; //
> // } //
> ////////////////////////////////////////////////////
> }
public class ex {
public static void main(String[] argv) {
Child c = new Child();
test(c);
}
static void test(Parent p) {
^^^^^^
因為你已經cast成 Parent 接著呢 你的Parent class中並沒有 sum()
那麼 compile 就不會過囉....
我猜的....
System.out.println("p.sum():" + p.sum() + " p.sum(20):" + p.sum(20));
} //變成333 ^^^^^^^^50
}
--
→↓ Origin: 彰化師大生物系˙吟風‧眺月‧擎天崗 micro.bio.ncue.edu.tw
↑← Author: CubicU 從 59-114-135-247.dynamic.hinet.net 發表
討論串 (同標題文章)