自学Java第47天
原以为对函数式编程掌握的还算不错时
却发现事实并不是如此
学习真的是一件需要不断地优化的事情
不然特容易鼠目寸光
以前对函数式接口的理解并不准确
有且仅有一个抽象方法的接口?
以前真的就是这么记忆的
大多数情况下,确实是没问题的
但是会有特殊情况:
比如说接口中有一个equals方法
哪怕它是一个抽象方法,对实现类也无影响
为什么会这样呢?
因为Objcet中有这个方法
Objcet是顶层父类,它的方法所有类都有
但是接口里是没有Object中的方法的
现在有一个实现类它实现了一个接口
实现类本是具有Objcet中的equals方法的
就算接口中也有一个equals方法
根据就近原则,实现类重写该方法
重写的是Objcet中的方法,和接口无关系
不过接口中的方法要和Objcet中的完全一致
并且也不仅限于equals方法
由此可以得出衍生出:
一个类继承自一个父类并且实现了一个接口
当父类和接口中出现了一模一样的方法时
该类是重写的是父类中的方法
毕竟亲爹还是比干爹要重要些的……