前两篇文章我们讲了如何编写一个类还有如何编写一个顶级类。那么我们这一次将要讲一下如何限制对类的访问以及类的继承的问题。现在就请各位洗耳恭听一下吧!!
其实类的成员除了有类成员与实例成员之分外,还有私有成员与公有成员之分。所谓的私有成员是只能被类的内部或者子类的内部(关于子类,我会在下面的文章中对
它进行解释)进行访问,外界是不能访问该成员的。而公有成员就不同,它既可以在类内访问也可以在类的外部访问。
如果想将一个成员设为公有成员则要用到关键字public,例如:
class test{
public var i:Number;//可以这样声明一个公有成员
……
}
如果你设置的成员是不想在类外访问的,那么我们可以将它设置为私有成员,那就要用到private关键字,例如:
class test{
private var i:Number;//可以这样声明一个私有成员
……
}
通过上面的例子,我们应该很容易的改变类成员的访问权限了吧。好!那么我们来看一下类的继承问题。
在面向对象中的“继承”是和现实生活中的“继承”在意思是有所出入的,在面向对象中的“继承”其实可以比喻成你从你的父亲或者母亲那里所遗传下来的一些相像的
特征。类的继承的确如此,一个被继承的类我们可以称它为“超类”或者是“父类”。而从“超类”中继承过来的类就叫做“子类”。在“子类”中是包括了“超类”中
的所有方法和属性的。那么我们应该怎样去编写一个类的继承呢?大家请看下面的例子:
//先声明一个父类
class baseClass{
var i:Number;
function baseClass(){}
}
//声明一个子类
class subClass extends baseClass{
var j:Number;
function subClass(){}
}
从上面的例子我们可以看得出,要想从一个类中得到继承,那么我们要用到关键字extends。还记得在前面的文章中我所提到过一个脚本文件只能写一个类吗?所以上面的
例子中,我们要把两个类分开成两个脚本文件来保存,如果不这样做的话,那么就会编译出错。在这里提醒大家一句:一个类只能从一个类中继承过来,不能继承于多个类。
但是一个类的子类仍然可以得到它的子类,也就是说继承是可以一直的延续下去的。
现在来看个完整的例子:
//baseClass.as
class baseClass{
var i:Number;
function baseClass(){}
}
//subClass.as
class subClass extends baseClass{
var j:Number;
function subClass(){}
}
//影片文件,在影片的第一帧加入以下代码
var demo:subClass=new subClass();
demo.i=12;
demo.j=3;
trace(demo.i);
trace(demo.j);
Ctrl+Enter,看一下上面的例子是否能够输出:
12
3
呼~~~~~终于写完了!我相信大家一定对Flash中的类有了相当的了解了吧。谢谢大家的支持~~请期待我下次的发表吧~~^_^
关于Flash中类的编写3
最新推荐文章于 2024-07-11 21:24:18 发布