作者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)
1F:推 etrexetrex:QQ 可是很贵 03/11 20:25
2F:推 icedesign:唉唷~我也想跳as3.0,可是我觉得我有些基本的东西不了解 03/11 22:02
3F:→ icedesign:所以还在摸索,感谢帮我解答,晚一点我会再看(忙ing~) 03/11 22:03
4F:推 icedesign:谢谢cj大,书上讲的应该是第二段,原因我再写篇文好噜! 03/11 23:48
5F:推 icedesign:^^"~因为手边有东西要做,比较懂2.0,我到现在才知道, 03/11 23:50
6F:→ icedesign:什麽是属性,什麽是区域变数,介面,套件等等...之前查 03/11 23:51
7F:→ icedesign:字典,发现翻出来的意思好像不太对,所以一直不是很了解 03/11 23:51
8F:→ icedesign:後来我终於懂了一些基本的东西。那天看了EAS3.0,一下下 03/11 23:52
9F:→ icedesign:终於晓得书里面的[大标题]到底在讲什麽意思。^^"~没办法 03/11 23:52
10F:→ icedesign:我天生资质真的是比较笨,所以很多东西我都只能慢慢学! 03/11 23:53
11F:→ icedesign:so,大概这次的东西做完以後,才会开始跳3.0(900页~冏) 03/11 23:54
12F:→ icedesign:^^"~到时要再麻烦各位前辈了! 03/11 23:54