C#中的interface

C#中的interface 其实是一种协议(Protocol)。在MSDN的接口(C#)中是如下定义的:An interface contains only the signatures of methods, properties, events or indexers.很明显,这里没有提到接口方法具有多态特性——这与Java中interface方法具有天然多态效应不一定。C# interface的接口默认为public,且不能具有virtual特性[1]。有些奇怪的实现方法,会强迫接口表现出多态性,我个人是不喜好的。偏门的且违背本意的的东西尽量不碰,甚至不去理解学习——恰如当年都不去看goto章节一样。

 

这只能让我得出结论,C#的interface只是一种契约(Contract),一种协议(Protocol)。

 

在MSDN的编程C#编程指南关于多态[2]的表述中,也没有提到接口。其中关于多态的两个表现特征的描述之一如下:

基类可以定义并实现方法,派生类可以重写这些方法,即派生类提供自己的定义和实现。在运行时,客户端代码调用该方法,CLR 查找对象的运行时类型,并调用虚方法的重写方法。因此,你可以在源代码中调用基类的方法,但执行该方法的派生类版本。[2]

 ”

即在基类与子类间,利用virtual & override 实现多态特性。 

 

[1] C# interface, https://msdn.microsoft.com/zh-cn/library/87d83y5b.aspx

[2] 多态, https://msdn.microsoft.com/zh-cn/library/ms173152.aspx

转载于:https://www.cnblogs.com/jjseen/p/5129554.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值