作者cjcat2266 (CJ Cat)
看板Flash
標題Re: [問題] Marker Interface__AS2.0
時間Tue Mar 11 14:36:20 2008
看不太懂你的問題耶...有幾句話意思不太清楚
※ 引述《icedesign (不可或缺的咖啡因)》之銘言:
: 並且建立共通類別[EventListener]:
↑意思是共同的superclass嗎?
: 假如將ABC三種類別的物件丟給EventListener,勢必會造成錯誤,因
↑"丟給"EventListener的意思是?
是說傳給他的一個method嗎?
: 書上說,用ABC的三個Listener去擴充一個EventListener?
↑ABC "的" Listener是?
我講我認為可能相關的東西吧
如果你的inheritance tree長這樣:
class EventListener
├ class A extends EventListener implements IListenerA
├ class B extends EventListener implements IListenerB
└ class C extends EventListener implements IListenerC
而且有個function或者method叫做 addListener(listener:EventListener);
那麼他的確是可以同時接收A, B, C的物件當作參數
只要符合 "IS-A" relationship 就ok了:
A is an EventListener
B is an EventListener
C is an EventListener
如果你interface也有如下的inheritance tree:
interface IEventListener
├ interface IListenerA extends IEventListener
├ interface IListenerB extends IEventListener
└ interface IListenerC extends IEventListener
而你的function的參數若是interface variable而不是一般的variable
換言之,定義長得像這樣 → addListener(listener:IEventListener);
那麼只要有implement過IEventListener或者其subinterface的class物件
都是可以被該function給接收的
至於marker interface的用處
就只是讓許多class去implement這個"空白"的interface
純粹是拿來做 "標記" 罷了
像我可以寫個空白interface,叫做IMadeByCJ
然後讓我寫的class都去implement這個interface
那麼以後遇到一個物件的時候
就可以用這個"標記"去判斷
這個物件是不是直接或間接來自於我寫的class:
//obj為不明物件
if (obj is IMadeByCJ) trace("made by CJ");
不知道這樣有沒有解決你的問題
P.S. 一般命名interface的時候為了不跟class name搞混,通常會用大寫 I 開頭
P.S.2 認真唷~去年我們不是結束AS2研討會之後,AS3研討會也結束了?
結果你還在研究AS2呀?
快點來加入AS3的行列啦~XDDD
很好玩底~ =U=++
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.82.232
※ 編輯: cjcat2266 來自: 61.228.82.232 (03/11 14:42)
推 etrexetrex:QQ 可是很貴 03/11 20:25
推 icedesign:唉唷~我也想跳as3.0,可是我覺得我有些基本的東西不瞭解 03/11 22:02
→ icedesign:所以還在摸索,感謝幫我解答,晚一點我會再看(忙ing~) 03/11 22:03
推 icedesign:謝謝cj大,書上講的應該是第二段,原因我再寫篇文好嚕! 03/11 23:48
推 icedesign:^^"~因為手邊有東西要做,比較懂2.0,我到現在才知道, 03/11 23:50
→ icedesign:什麼是屬性,什麼是區域變數,介面,套件等等...之前查 03/11 23:51
→ icedesign:字典,發現翻出來的意思好像不太對,所以一直不是很瞭解 03/11 23:51
→ icedesign:後來我終於懂了一些基本的東西。那天看了EAS3.0,一下下 03/11 23:52
→ icedesign:終於曉得書裡面的[大標題]到底在講什麼意思。^^"~沒辦法 03/11 23:52
→ icedesign:我天生資質真的是比較笨,所以很多東西我都只能慢慢學! 03/11 23:53
→ icedesign:so,大概這次的東西做完以後,才會開始跳3.0(900頁~冏) 03/11 23:54
→ icedesign:^^"~到時要再麻煩各位前輩了! 03/11 23:54