10. 按 F5 执行应用程序。Output出现,结果如图3所示:
图三. 继承实例2的输出结果
注意 在class A 中有一个可以被override方法。在class B 有一个override方法。Class A 和class B 和前一个实例非常相似。Class B 继承class A 并且Override了方法F,另外改变了方法 F。 a.F() 和b.F() 都调用B.F,因为class A方法 F 已经被class B 的方法 F Override。
在class C 中,方法F被声明为既是一个可以被override方法也是一个shadow 方法。这意味着 这个方法在编译时屏蔽了基类的方法 F,同时它可以被class C的子类Override。Class D 继承class C。class D 中有一个override 方法,它改变了class C 方法 F在运行时的执行。这就是c.F() 和d.F() 都调用 D.F的原因。
因为方法可以屏蔽(Shadow)被继承的方法, 所以在一个类中可以包含多个具有相同的signature(即函数名,参数和返回值相同)的overridable 方法而不会引起歧义。因为除了那个被直接继承的基类方法外,其他所有的基类的方法都被隐藏而不可访问,从而没有名字冲突。
如果要调用shadowed overridable 方法,我们可以把类D的实例转为其基类(在本例中A和B)的实例来调用它。
结语
当你不看工程文件时,关闭所有的窗口。
重置操作
可以通过HOLT1-01Experience Visual Studio .NET.msi 安装包和Reset.vbs 脚本文件清除所有与实验相关的信息。
按照以下步骤重置你的电脑
1. 双击HOLT1-01 Experience Visual Studio .NET.msi. 安装想到会出现。
2. 单击Next。一个题为Program Maintenance页面出现。
3. 选择Remove, 接着单击Next。一个题为Remove the Program 窗口出现。
4. 单击Remove。 这将删除所有的与实验相关的文件夹和文件。
5. 单击Finish。
你现在将删除Start菜单中快捷方式。
6. 双击Reset.vbs。当Windows Script Host 窗口出现时,单击 OK。
再次运行这个实验:
1. 安装HOLT1-01 Experience Visual Studio .NET.MSI.
2. 执行 Setup.vbs.