文章:[译]C#8.0中一个使接口更加灵活的新特性-默认接口实现
原文示例代码:
public interface IBook { void AddBook(string bookName, string autherName); void removeBook(string bookName); void rateBook(int bookID) { //default logic here Console.WriteLine("\nExecuted the Default implementation in the interface"); } }
java8中也提供了接口默认实现;
参考:https://baijiahao.baidu.com/s?id=1609018150369824405&wfr=spider&for=pc
标题:Java8的接口默认方法
在Java8中,允许在接口中包含带有具体实现的方法,使用default修饰,这类方法就是默认方法。例如:
3. 接口中的默认方法和继承的父类方法冲突了,那么这个时候会选择父类中的方法,而不是接口中的默认方法。这个也叫做类优先原则,它可以保证与Java7的兼容性。也就是说,在接口中实现的一个默认方法,它不会对Java8之前写的代码产生影响。所以,我们也不能在接口中定义toString()和equals()这样的接口,因为根据类优先的原则,Object中的这些方法会保留。