Re: [問題] 想請問interface的具體意義

看板java作者 (潑文章都是為了養小雞)時間19年前 (2007/01/22 21:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/29 (看更多)
恕刪..... 有朋友問到我所謂的靜態動態是什麼意思 抱歉讓你們困惑了 我所謂的靜態是指汽車跟雨刷(或機車跟雨刷) 其之間的關係,在定義該類別的時候就已經寫死 他們的命運就已經註定... 可能是再class declaration裡面就宣告出一個member 或者是類似下面這位朋友所謂的"一種特別的多重繼承" 那動態的意思是交通工具這個類別擁有一個指向電動雨刷 的物件,在建構時其決定要不要時坐電動雨刷(汽車要,機車不要) 而就下面這為朋友所述 看起來就是我所謂的靜態... 不過在最底下我還有一個疑問.... ※ 引述《godfat ()》之銘言: : 所以 Java Interface 其實是功能變弱的多重繼承 : 上面寫成 Java 的話就是這樣: : interface 電動雨刷{ : public void 刷刷刷(); // 不需要實作,寫了會 error : // 忘了要不要加 public..... XD 懶得查證了 : } : class 汽車 extends 交通工具 implements 電動雨刷{ : public void 開車(){ /*...*/ } : public void 刷刷刷(){ /*一定要實作,不實作 compile error*/ } : } : class 機車 extends 交通工具{ // 沒有實作電動雨刷 : public void 開車(){ /*...*/ } : } : 然後兩者都可以這樣做: : C++: : 電動雨刷* abc = new 汽車; // 無參數時括號可省略 : Java: : 電動雨刷 abc = new 汽車(); // 括號一定要加 我對Java這一行很有興趣.... (不過, 電動雨刷那個token應該要改成交通工具吧? 至少C++是如此的...) 如果我這麼寫(Java code) 交通工具 Civic = new 汽車(); Civic.刷刷刷(); // 會執行刷雨刷的動作,這OK 交通工具 Dio = new 機車(); Dio.刷刷刷(); // 這會發生什麼事情? do nothing嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.86.69.46 ※ 編輯: jaw109 來自: 219.86.69.46 (01/22 21:35)
文章代碼(AID): #15jBrBAv (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 6 之 29 篇):
文章代碼(AID): #15jBrBAv (java)