首页 > ActionScript 3, 一步一步学ActionScript 3.0 > [ActionScript 3]一步一步学ActionScript 3.0(三)

[ActionScript 3]一步一步学ActionScript 3.0(三)

这一节,我们讲到一个我们用的比较多的一个概念—-继承.

继承是指一种代码重用的形式,允许程序员基于现有类开发新类。现有类通常称为”基类”或”超类”,新类通常称为”子类”。

先看一段代码:

  1. package net.smilecn{
  2.   
  3.     import net.smilecn.MyClass;//类在使用之前要先导入
  4.   
  5.     public class MySubClass extends MyClass{
  6.       
  7.         public function MySubClass(){
  8.             trace("Pi:",PI);//正确
  9.             trace("r:",r);//正确
  10.             trace("s:",s);//错误
  11.         }
  12.       
  13.     }
  14. }

我们发现这个类跟我们之前写的类的区别是多了”extends”这个一个关键字,这个关键字的作用就是说明,我们现在的这个类MySubClass是继承MyClass这个类的,继承之后我们就可以使用MyClass这个类里的变量和方法了,这样就达到代码重用的目的,比如说我们现在要写关于若干个球的类,有足球\篮球\排球等等,那么我们可以先找出这些的共性,先写一个球的类,然后再继承这个球的类写出若干个球的类,那么相同的东西就写在球的类中了,这个达到了代码重用;

可以看到,PI,r,s是在MyClass这个类中定义的变量,那么由于MySubClass继承了MyClass,所以MySubClass也能使用这些变量了,但代码前两个我写的正确,后一个写的错误码是什么意思了,回忆下上一节学到的”属性关键字”,

public和protected,在子类中是可以使用的,private是不行的,所以这里PI和r是可以使用的,s不能用.并且子类在构造的时候也会执行基类的构造方法,

我们改一下FLA文件的代码:

  1. import net.smilecn.MySubClass;
  2. var mySubClass:MySubClass = new MySubClass();
  3. mySubClass.r = 3;

在输出面板会输出:

这个我写的第一个类
Pi: 3.1415926
r: 3

注意:标有错误的那句代码要去掉,不然会报错.

下节继续讲解继承.

(本教程如需转载请注明出处!)

  1. 青风是也
    2008年10月29日00:39 | #1

    发现这章有错误。在最后“我们改一下FLA文件的代码”
    如果我没记错的话,r=3这个句子是写在FLA里,如果把FLA改成下面的代码,是不会输出r的值。我没测试,不知道对不对。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.