intro
在学习@FunctionalIterface时,发现了java接口不能定义静态方法,我们来想下为什么吧!
接口是没有例化的
接口是对类的规范,唯一的作用是被类继承,所以规定了没有例化。那么当接口myInterface具有一个静态方法Add()时,其被两个类A,B继承。根据静态方法的特性,我无需例化就能直接使用Add(),我们只要,静态方法的使用是自动生成一个隐藏累调用Add(),既然接口不能被例化,那么我们应该例化A还是B?这种不确定性决定了接口不能被例化。
@FunctionalIterface
@ FunctionalIterface注释有这样一个特点,让接口支持静态方法,哇~是不是很奇怪?我猜想此时接口应该变成了一个类吧,等我以后牛了回来填坑。
Reference
[1] https://zhidao.baidu.com/question/281722076.html