接口和类混合继承的问题
2009-11-02 23:51
281 查看
当借口IBase同时被Base类和IA继承时,继承自Base和IA的A类是否继承了IBase?
测试结果:是的
那么它是从Base类的实现继承的还是IA中的实现?
Switch(我是谁?)
Case (Base)a:我是继承自Base的实现
Case (IA)a:我是继承自IA的实现
Case(IBase)a:我是继承自IBase的实现
Case a:是否声明了其中的方法,如果是那么声明的优先,否则就是父类的实现。
这个结果提供了一种可能,即通过父类实现子类的通用功能,然后通过父接口应用到所有子接口中,而且子类中可以对相应的方法重写。
测试代码:
测试结果:是的
那么它是从Base类的实现继承的还是IA中的实现?
Switch(我是谁?)
Case (Base)a:我是继承自Base的实现
Case (IA)a:我是继承自IA的实现
Case(IBase)a:我是继承自IBase的实现
Case a:是否声明了其中的方法,如果是那么声明的优先,否则就是父类的实现。
这个结果提供了一种可能,即通过父类实现子类的通用功能,然后通过父接口应用到所有子接口中,而且子类中可以对相应的方法重写。
测试代码:
.namespace ArchitectureTesting { .class private auto ansi beforefieldinit A extends ArchitectureTesting.Base implements ArchitectureTesting.IA, ArchitectureTesting.IBase { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { } .method private hidebysig newslot virtual final instance void ArchitectureTesting.IBase.Write() cil managed { .override ArchitectureTesting.IBase::Write } } .class private auto ansi beforefieldinit Base extends [mscorlib]System.Object implements ArchitectureTesting.IBase { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { } .method public hidebysig newslot virtual final instance void Write() cil managed { } } .class public interface abstract auto ansi IA implements ArchitectureTesting.IBase { } .class public interface abstract auto ansi IBase { .method public hidebysig newslot abstract virtual instance void Write() cil managed { } } .class private auto ansi beforefieldinit InterfaceTesting extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { } .method public hidebysig static void Run() cil managed { } } .class private auto ansi beforefieldinit Program extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { } .method private hidebysig static void Main(string[] args) cil managed { .entrypoint } } } Collapse Types
相关文章推荐
- 基类与接口混合继承的声明问题 [C#, Design] -Allen Lee's Magic
- 基类与接口混合继承的声明问题 [C#, Design]
- 基类与接口混合继承的声明问题 [C#, Design]
- 经典问题解析(3)---多态与数组、多重继承、接口的概念
- delphi接口问题——当类继承自TComponent和TObject
- C#类继承和接口继承时一些模棱两可的问题[转]
- Java小程序---接口中抽象方法的实现(解决了JAVA语言不能多继承的问题)
- 实现接口的类是否继承接口实现的问题
- 简单的java实验,涉及到 类继承以及接口问题,方法体的重写(区别于重载)
- 接口继承的声明问题
- 如果类a继承类b,实现接口c,而类b和接口c中定义了同名变量,请问会出现什么问题?(瞬联)
- 关于java中继承多接口实现其中同名方法的问题
- js混合模式继承出现问题的解决
- 接口继承的声明问题
- HessianCSharp 1.3.3版本前使用泛型以及接口interface继承问题解决方案!!(实例代码)
- 关于接口的实现和继承的问题
- spring cloud feign 接口继承以及参数传递的问题
- *继承IObjectSafety接口,实现vb activeX控件安全性(IE不提示安全问题)
- JAVA基础知识点(六)--接口,多态,继承,抽象类,重载的问题
- 关于“JAVA中为什么没有了多继承并出现了接口”这一问题引发的一些思考