C#和java的接口有很多类似之处,对于编程约束和设计模式的实现有重要作用。这里记录几个知识点。

1. C#的接口中不能有字段,但Java的接口中允许有static final修饰的字段/域(field)。
2. Java的接口中一般包含方法签名和上述的static final修饰的域(Java的类成员一般包括构造函数,析构函数,普通方法,域)。C#的接口中可以包含方法签名,属性,事件,索引等,实际上,C#中的这些类成员在编译成IL时都会进行处理转为方法。
3. 接口中的方法签名都不能是静态的。
4. 语法形式上,接口中的方法都是公共的,Java的接口中的方法签名可以显示声明public或者不声明,C#接口中的方法签名不允许显示声明public。
5. 实现上,接口都是一种行为约束,表示类具有某种能力。共同点是,都可以在实现接口的类中,用public实现(而且是必需实现)接口中所有的方法签名。不同的是,C#接口独有的显示实现。C#的类中对接口的显示实现注意一下几点:1)显示实现时方法不用public修饰(但默认为public)。2)显示声明的方法只能由接口调用,类及其实例不能调用。3)类实现某一接口时,可以只一般实现接口成员(public),显示实现接口成员(只能通过接口调用),也可以同时一般实现和显式实现共存(共存时规则不变,一般实现可以由接口或者类变量调用,显式实现只能由接口的变量调用)。

interface IInterface
{
string AProperty { get; set; }
} class TestClass:IInterface
{
public string AProperty { get; set; }
string IInterface.AProperty { get; set; }
} class Program
{
static void Main(string[] args)
{
TestInterface();
Console.ReadKey();
} private static void TestInterface()
{
IInterface aInterface = new TestClass();
TestClass aClass = new TestClass();
aInterface.AProperty = "aaaaaaaaaa";
aClass.AProperty = "bbbbbbbbbb";
Console.WriteLine(aInterface.AProperty);
Console.WriteLine(aClass.AProperty);
}
}

最新文章

  1. 镁光c400-MTFDDAK064M固态硬盘更新固件
  2. javaweb中实现在线人数统计
  3. js常用函数、书写可读性的js、js变量声明...
  4. Windows 下整理内存工具推荐——cleanmem
  5. SectionIndexer中的getSectionForPosition()与getPositionForSection()
  6. 编译内核出错:invalid option `abi=aapcs-linux' 解决办法
  7. 如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。
  8. Silverlight的Socket通信
  9. C++中L和_T()之区别
  10. 翻译:如何使用CSS实现多行文本的省略号显示
  11. python加载sqlite3报错:No module named _sqlite3
  12. win10 uwp 圆角按钮
  13. 【机器学习】--Python机器学习库之Numpy
  14. 引擎设计跟踪 地形LOD的改进
  15. Spring的标签和验证等模块
  16. 《Linux内核分析》第三周:Linux系统启动过程
  17. 《跟老男孩学Linux运维:Web集群实战》读书笔记
  18. [uart]linux uart应用层配置
  19. BASIC-24_蓝桥杯_龟兔赛跑预测
  20. OAuth 2.0 学习

热门文章

  1. Python(数据库之数据类型)
  2. 浅谈HTML文档模式
  3. React:快速上手(2)——组件通信
  4. ZOJ - 3593 One Person Game (扩展欧几里得)
  5. 对Java的接口和抽象类 的一些了解
  6. 会话控制Cookie的应用
  7. 20145229吴姗珊《网络对抗》WEB基础实践
  8. vue脚手架解决跨域问题-------配置反向代理
  9. Terms of Company
  10. 【React Native开发】React Native进行签名打包成Apk