您的位置:首页 > 编程语言 > Java开发

as3与java在protected等方面的的一些区别

2015-08-16 13:38 330 查看
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),因为它根本就不存在于子类中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: