詢問看不懂的程式碼的意思 |
尚未結案
|
warke
一般會員 發表:19 回覆:32 積分:10 註冊:2004-09-04 發送簡訊給我 |
各位大大:
很不好意思,小弟今天作題目的時候發現很多考古題喜歡考底下這樣的題目。
interface I1 {} interface I2 {} class Base implements I1{} class Sub extends Base implements I2{} public class t { public static void main (String[] arg) { Sub s1 = new Sub(); I2 i2 = s1; // 1 I1 i1 = s1; // 2 Base base = s1; // 3 Sub s2 = (Sub)base; // 4 } }上面這段程式碼,1~4中,哪一行會出錯。 小弟對這個實在是很不在行。 雖然說平常可以直接把程式碼KEY到電腦裡面就知道了。 不過考試的時候卻不行的阿QQ"~ 請問一下各位大大,可以不可以稍微講解一下下呢? 就是說,對於這樣的考題,有沒有什麼答題技巧之類的。 |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
Komuro
一般會員 發表:27 回覆:46 積分:14 註冊:2004-02-19 發送簡訊給我 |
這支程式是完全合Java語法,1~4行也是正確,compile正常無誤
Sub s1 = new Sub();
I2 i2 = s1; // 1<=因為Sub實作Interface I2,所以可以將Sub的實作物件
s1指定給I2型態的參考,此為多型的概念
I1 i1 = s1; // 2<=雖然Sub並沒實作Interface I1,但透過和Base的繼承關係,
由Base間接實作I1,所以可以將Sub的實作物件s1指定給I1
型態的參考,此為繼承,多型,間接實作的概念
Base base = s1; // 3<=Sub跟Base具繼承關係,所以可將Sub的實作物件s1指定
給Base型態的參考,此為繼承,多型的概念
Sub s2 = (Sub)base; // 4<=Sub跟Base具繼承關係,所以可將Base型態的參考
指定給Sub型態的參考,這是父類別轉子類別,由大轉
小,依Java語法需明顯轉換(Sub)此為繼承,多型,轉型
的概念
你只要能弄清楚 繼承,實作,多型,轉型 等OO概念,這題目就難不倒你
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |