最近在研究pureMVC框架,有几个小细节,在此记录一下:
一、关于as3中方法重载。
package com.accessport.test
{
public class Base
{
public function Base()
{
}
public function method_1():void{
trace("class of parent : base.method_1()");
method_2();
method_3();
}
public function method_2():void{
trace("class of parent : base.method_2()");
}
public function method_3():void{
trace("class of parent : base.method_3()");
}
}
}
父类如上,在method_1()方法中,调用method_2()和method_3().
package com.accessport.test
{
public class Test extends Base
{
public function Test()
{
}
override public function method_1():void{
super.method_1();
trace("class of implement : method_1()");
}
override public function method_2():void{
trace("class of implement : method_1()");
}
}
}
子类继承父类,并重写了method_1()和method_2().
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import com.accessport.test.*;
public function init(){
var t:Test = new Test();
t.method_1();public function method_1():void{ trace("class of parent : base.method_1()");
method_2();
method_3();
}
}
]]>
</mx:Script>
</mx:Application>
在application中,创建子类的实例,并调用method_1方法,得到如下结果:
class of parent : base.method_1()
class of implement : method_1()
class of parent : base.method_3()
class of implement : method_1()
从结果中可以看出,子类通过调用父类的方法,然后在父类的方法中又调用对其他已经被重写的方法时,此时执行的是子类的方法,而父类的方法不会执行。
即base类中
public function method_1():void{
trace("class of parent : base.method_1()");
method_2();
method_3();
}
method_2()已经被子类重写,因此在此处调用时,则会执行子类的,父类的不会执行。
分享到:
相关推荐
【VB.NET源码实现防止运行重载多个程序实例】 在软件开发中,有时我们需要确保同一时间只能有一个实例的程序在运行。例如,某些应用程序如果同时打开多个实例可能会导致数据冲突或者资源浪费。VB.NET(Visual Basic...
- **解析:** 尽管这个方法的逻辑有所改变(返回值为 `y`),但其方法签名与原始方法完全相同,因此这不构成重载,而是一种方法覆盖(override),前提是它们处于继承关系中。然而,在当前情况下,它不是重载版本。...
这将涉及VB.NET编程语言的基础知识、如何在VB.NET中连接不同类型的数据库(如Access和SQL Server)、使用ADO.NET进行数据库操作的方法,以及如何处理事务。 ### 一、VB.NET与数据库交互概述 在VB.NET中,开发人员...
在Oracle中,多态性主要体现在方法的重载和动态绑定上。 5. **其他面向对象特性** - **方法**:Oracle对象类型可以包含方法,这些方法可以是静态的(属于类型)或实例化的(属于对象)。方法的定义和实现也是对象...
- **重载(Overload)**: 在.NET框架中,重载允许同一个类中有多个同名的方法,但这些方法的参数列表必须有所不同(参数的数量、类型或顺序不同),返回类型可以相同也可以不同。重载主要用于实现方法的功能多态性,即...
- **二维数组**:`Dim A(3,4) As Integer` 声明了一个整数类型的二维数组,其中第一个下标范围为0到3,第二个下标范围为0到4。因此,该数组共有20个元素(5行×4列)。 ### 4. 方法重载与面向对象特性 - **方法...
11. 构造方法:Java构造方法可以重载,问题11中的C选项描述错误。 12. JavaBeans:编写JavaBeans即编写Java类,具备基本的Java编程能力即可。 13. 微型计算机:个人计算机属于微型计算机,问题13的描述正确。 14....
SELECT * FROM (SELECT ROWNUM AS rnum, col1, col2 FROM (SELECT * FROM table_name ORDER BY id)) WHERE rnum BETWEEN 15 AND 20; ``` 此语句表示获取第 15 至 20 条记录。 #### 8. Java 中的克隆与拷贝 **克隆...
3. 使用is或as操作符代替类型转换。is和as操作符提供了一种更安全的类型转换方式,可以减少在转换失败时抛出异常的几率。 4. 使用条件属性而不是预处理器指令#if。条件属性可以在编译时根据条件来包含或排除代码,...
1. 语法形式:CREATE VIEW [ schema_name.] view_name [ (column [,··· ,n] ) ] [WITH [ENCRYPTION] [SCHEMABINDING] [VIEW_METADATA] ] AS select_statement [ ; ][ WITH CHECK OPTION ] 2. 注意:应制定统一的...
多态可以通过方法重载(overloading)和方法重写(overriding)两种方式实现。多态提高了代码的灵活性和可扩展性。 ### 二、`foreach`遍历访问的对象要求 能够使用`foreach`语句遍历访问的对象,通常需要满足以下条件...
### 3. ADO.NET 的主要对象 - **Connection**:连接数据库的对象,负责建立与数据库之间的通信通道。 - **Command**:执行 SQL 命令的对象,如插入、更新、删除等操作。 - **DataReader**:用于从数据库读取只进不...
重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 Override 是进行基类中函数的重写。为了适应需要。 6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、...