Re: [問題] 想請問interface的具體意義
恕刪.....
有朋友問到我所謂的靜態動態是什麼意思
抱歉讓你們困惑了
我所謂的靜態是指汽車跟雨刷(或機車跟雨刷)
其之間的關係,在定義該類別的時候就已經寫死
他們的命運就已經註定...
可能是再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)
討論串 (同標題文章)