首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

AS3中public internal private protected的差异

2012-08-24 
AS3中public internal private protected的区别protectedJava與AS3中的一點不同。AS3中的protected修飾類型

AS3中public internal private protected的区别

protected

Java與AS3中的一點不同。AS3中的protected修飾類型,於java中略有不同。

Java中使用protected修飾的类、类属变量及方法,包内的任何类,及包外的那些继承了此类的子类都可以访问;

但是AS3中的protected,將會使你的類變得只能被其本身或其子类访问。如果外部类尝试访问被protected的成员,将会抛出编译错误。一般只在其子类中出现。

?

Public

所有调用者都可以使用

?

?

?

Private

在 ActionScript 3.0 中,private不再提供对子类的访问,只供自己的类使用,一般定义成改属性相对比较安全。但是要根据具体情况而定

?

Internal

Internal和public很相似,只是限定在包内。

?

关于dynamic
动态(dynamic)类允许在运行时动态地添加属性,常见的动态类有MovieClip和顶级(top-level)的Array。如果您的自定义类要继承于动态类,那么请也定义为动态的,不要省略dynamic关键词。

??

关于继承(extends)和override
继承其实并不太复杂,唯一要说明的就是:子类的构造函数一定要用“super”调用一次父类的构造函数,否则报错!对于继承后的子类,如果要重新定义父类的非private方法,必须使用override关键词。在override的时候,如果我们需要调用父类的方法,可以使用super关键词(由于继承方法在逻辑上与父类往往有相似性,因此没有必要把方法逻辑完全重写)官方帮助中的这个例子非常易懂:

override不能用于重载变量(成员属性)。但是却可以用于重写getter和setter函数

?

简要总结:
1、如果我需要属性公开,并且可以被自己的子类继承,那么定义成public的。子类也可重写(override)之。
2、如果我需要属性隐藏,但是可以被自己的子类继承,那么定义成protected的。与public类似,子类也可重写(override)之。
3、如果我的某一个类有一个属性不想在任何位置可见,包括其子类,那么定义为private的。其子类无需重写(override),因为它根本就不存在于子类中。

热点排行