zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    讲解SQL Server危险扩展存储删除和恢复
    新生活
    邮件发送作业调度 创建操作员
    Linux 定时任务 crontab
    短信猫二次开发接口函数及规范
    Linux修改用户shell
    Linux里$等记得转义
    网页标题前出现的图标
    Linux读书笔记
    DataStage通过分析日志获取Job插入目标表的记录数
  • 原文地址:https://www.cnblogs.com/jjseen/p/5129554.html
Copyright © 2011-2022 走看看