接口的重实现与抽象类

 
接口的重实现
 
派生类可以对基类中已经定义的成员进行重载,类似的概念引入到类对接口的实现中来,叫做接口的重实现
继承了接口实现的类可以对接口进行重实现,这个借口要求是在类声明的基类表中出现过的,对接口的重实现也必须遵守首次实现接口的规则,派生的接口映射不会对接口重实现所建立的接口映射产生影响。
案例
     interface IControl
     {
         void Paint();
     }
     class Control:IControl
     {
         void IControl.Paint()
         {}
     }
     class MyControl:Control,IControl
     {
         public void Paint()
         {}
     }
实际上就是:Control把IControl.Paint 映射到了Control.IControl.Paint上,但这并不影响MyControl上进行重实现。在重实现中IControl.Paint被映射到了MyControl.Paint上
在接口的重实时,继承而来的公有成员声明和继承而来的接口成员的声明参与到重实现过程中。
这里强调一点,类在实现一个接口时同时隐式的实现了改接口的所有父接口,同样的,类在重现一个接口时,同时隐式继承了该接口的所有父接口
 
抽象类和接口
 
和非抽象类一样,抽象类也必须提供在基类列表中所出现的所有接口成员的实现,不同的是,抽象类允许将接口的方法映射到抽象的成员方法
案例
     interface IMethods
     {
         void f();
     }
     abstract class test:IMethods
     {
         public abstract void f();
     }
 
上例中,所有C的非抽象派生成员必须重载C中的抽象方法来提供接口实现
注意,显示接口执行体不能是抽象的,但它允许调用抽象方法 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值