Java 接口
这里不讲为什么需要使用接口,因为大部分人开发那么久,应该都了解使用接口的原因和好处了吧,无非就是松耦合那一套吗,但关于接口的一些问题,你真的考虑过嘛?。
1. 接口中的方法不用声明为public
虽然写上不会报错,但是完全没有必要,因为接口实现的时候,只能是public
更别提将接口方法声明为private
,protected
了,直接报错
2. 接口实现的时候,只能是public
除了public
,其他类型准报错
何况你再想想,如果要将接口方法申明为private
,那写这个接口,还有什么意义?
接口的目的,本来就是为了松耦合,写成private
到好,让方法只能在类内部使用了,那还松耦合松个鬼啊。
3. 实现多个接口的重名问题
3.1 两个方法一模一样
这里定义两个接口,其自带的方法,一模一样(一模一样,即指函数名
,返回值
,参数类型
,参数个数
和不同类型参数的排列顺序
都一模一样,这些条件,除了返回值和函数名,其余三样,每一样都是保证函数能够重载的条件)
那最后多接口实现的时候,其实就相当于只实现一个方法,没有什么影响,且都可以实现多态:
3.2 只有返回类型不一样
但是,如果两个接口函数名和参数个数都一样,只有返回值不一样,换句话说,就是不满足区分函数重载的条件,那编译器就会报错:
此时,因为一个返回int
,一个不返回,那接口实现写int
也不是,写void
也不是,
又因为,方法返回的类型不能作为重载的标志,所以,下面这种写法也无济于事…
3.3 只有满足函数重载的条件,接口才可重名
在 3.1 也提到过,参数类型,参数个数、不同类型参数的排列顺序
这三样,每样都可以成为重载的条件,只要满足任何一样,就能实现同函数名接口的多继承及实现。