[ActionScript 3]一步一步学ActionScript 3.0(三)
这一节,我们讲到一个我们用的比较多的一个概念—-继承.
继承是指一种代码重用的形式,允许程序员基于现有类开发新类。现有类通常称为”基类”或”超类”,新类通常称为”子类”。
先看一段代码:
- package net.smilecn{
- import net.smilecn.MyClass;//类在使用之前要先导入
- public class MySubClass extends MyClass{
- public function MySubClass(){
- trace("Pi:",PI);//正确
- trace("r:",r);//正确
- trace("s:",s);//错误
- }
- }
- }
我们发现这个类跟我们之前写的类的区别是多了”extends”这个一个关键字,这个关键字的作用就是说明,我们现在的这个类MySubClass是继承MyClass这个类的,继承之后我们就可以使用MyClass这个类里的变量和方法了,这样就达到代码重用的目的,比如说我们现在要写关于若干个球的类,有足球\篮球\排球等等,那么我们可以先找出这些的共性,先写一个球的类,然后再继承这个球的类写出若干个球的类,那么相同的东西就写在球的类中了,这个达到了代码重用;
可以看到,PI,r,s是在MyClass这个类中定义的变量,那么由于MySubClass继承了MyClass,所以MySubClass也能使用这些变量了,但代码前两个我写的正确,后一个写的错误码是什么意思了,回忆下上一节学到的”属性关键字”,
public和protected,在子类中是可以使用的,private是不行的,所以这里PI和r是可以使用的,s不能用.并且子类在构造的时候也会执行基类的构造方法,
我们改一下FLA文件的代码:
- import net.smilecn.MySubClass;
- var mySubClass:MySubClass = new MySubClass();
- mySubClass.r = 3;
在输出面板会输出:
这个我写的第一个类
Pi: 3.1415926
r: 3
注意:标有错误的那句代码要去掉,不然会报错.
下节继续讲解继承.
(本教程如需转载请注明出处!)
发现这章有错误。在最后“我们改一下FLA文件的代码”
如果我没记错的话,r=3这个句子是写在FLA里,如果把FLA改成下面的代码,是不会输出r的值。我没测试,不知道对不对。