接口默认方法是什么鬼
接口之所以成为接口,就在于它没有实现,只是声明。但后来一切都变了,Java 里出现了默认方法,C# 也出现了默认方法。接口已经不像传统意义上的接口,其概念开始向抽象类靠近,一个纯抽象的东西,突然出现了实体,于是开始傻傻分不清了。 世界已经变了,可他是怎么开始改变的呢? 1. 缘起 虽然本文有提到 Java,但是笔者近年主要还是在写 C# 程序,所以未明确语言的命名规范会更倾向 C# 的规范一些,敬请谅解。 曾经,我们定义了 IStringList 接口,它声明了一个列表: 这只是个例子,为了避免引入更多的技术概念,这里没有使用泛型举例。 interface IStringList { void Add(string o); // 添加元素 void Remove(int i); // 删除元素 string Get(int i); // 获取元素 int Length { get; } // 获取列表长度 } 不管怎么说,这个列表已经拥有了基本的增删除改查功能,比如遍历,可以这样写 IStringList list = createList(); for (var i = 0; i &...
