雪原xy 发表于 2018-12-20 16:01:35

继承的用法小练习

为了方便我把三个类文件一并插入了。
package son
{
        //定义一个父类(笔);
        public class Pen
        {
                public var nam:String;//名称
                public var t:uint;//用来记下写入次数;
                public var memory:Array = [];//用来存储写入内容的数组;
                public function Pen()
                {

                        init();// constructor code
                }
                //定义一个初始化属性的方法,便于继承的子类重写初始值;
                function init()
                {
                        nam = "笔";
                        t = 0;
                }
                //定义一个写字的方法;
                public function write(e:String)
                {//输出要写入的内容;
                        trace("这次写入的内容是:"+e);
                        //把本次输入的内容存入数组的尾部;
                        memory.push(e);
                        //记录写入的次数;
                        t++;
                }
        }

}
package son
{
        //定义笔的一个子类,铅笔
        public class Pencil extends Pen
        {
                //复合橡皮属性;
                public var _rub:Rubber;
                public function Pencil()
                {
                        init();
                        initparts();// constructor code
                }
                //重写属性的初始值;
                override function init()
                {
                        nam = "铅笔";
                }
                //初始化_rub;
                function initparts()
                {
                        _rub = new Rubber;
                }
                //把Rubberr的方法传递过来;
                function wipe(e:String)
                {
                        _rub.wipe(e);
                }
                function recovery()
                {
                        _rub.recovery();
                }
        }

}
//以下是文档类
package
{

        import flash.display.Sprite;
        import son.Pen;
        import son.Pencil;

        public class doc extends Sprite
        {
                var _pen:Pen = new Pen();
                var _pencil:Pencil=new Pencil();
                var m:Array = [];//用来记录写入内容的数组;
                var wt:int;//用来记录写入的次数;
                var rt:int;//用来记录擦除的次数;
                public function doc()
                {
                        init();
                }
                private function init()
                {
                        trace(_pen.nam);
                        _pen.write("中国人");
                        m=_pen.memory.concat(_pencil.memory);//把_pen和_pencil的写入内容合并起来;
                        wt = _pen.t + _pencil.t;//记录写入的总次数
                        trace(m);
                        trace("一共写入了"+wt+"次");
                        _pencil.write("外国人");
                        m = _pen.memory.concat(_pencil.memory);
                        wt = _pen.t + _pencil.t;
                        trace(m);
                        trace("一共写入了"+wt+"次");
                        _pencil.write("地球人");
                        m = _pen.memory.concat(_pencil.memory);
                        wt = _pen.t + _pencil.t;
                        trace(m);
                        trace("一共写入了"+wt+"次");
                        _pencil._rub.wipe(m);//擦除的刚刚输入的内容;
                        m.pop();
                        rt = _pencil._rub.t;//记录擦除的次数;
                        trace(m);//输出擦除后剩下的内容;
                        trace("擦除了"+rt+"次");

                }

        }

}

雪原xy 发表于 2018-12-20 16:03:56

花了我三天的时间才写好这段代码,修改的无数次,总算成功了,很开心!但是也遇到了很多的问题,太多太多,要发一个单独的贴子来总结!!
页: [1]
查看完整版本: 继承的用法小练习

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)