Re: [問題] Marker Interface__AS2.0
看不太懂你的問題耶...有幾句話意思不太清楚
※ 引述《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)
推
03/11 20:25, , 1F
03/11 20:25, 1F
推
03/11 22:02, , 2F
03/11 22:02, 2F
→
03/11 22:03, , 3F
03/11 22:03, 3F
推
03/11 23:48, , 4F
03/11 23:48, 4F
推
03/11 23:50, , 5F
03/11 23:50, 5F
→
03/11 23:51, , 6F
03/11 23:51, 6F
→
03/11 23:51, , 7F
03/11 23:51, 7F
→
03/11 23:52, , 8F
03/11 23:52, 8F
→
03/11 23:52, , 9F
03/11 23:52, 9F
→
03/11 23:53, , 10F
03/11 23:53, 10F
→
03/11 23:54, , 11F
03/11 23:54, 11F
→
03/11 23:54, , 12F
03/11 23:54, 12F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):