日期:2025/04/05 16:03来源:未知 人气:53
Java的接口
Java中可以定义一个私有接口吗?答案是肯定的。
那为什么会用到私有的接口?
回答这个问题之前先看看Java中的接口
Java的接口
接口提供了一种接口和实现分离的方法,在Java中通过关键字interface定义,接口中的方法都是抽象的(没有实现体)。
接口在现实中使用的太多了,比如插座的接口,手机的充电接口,耳机接口。接口只定义了协议,实现者只要实现这个接口定义即可。比如,3.5mm的耳机接口,不同的厂商可以制造各种颜色的,形状的耳机,只要遵循接口定义即可。
接口和抽象类的区别可以参考:Java中的接口和抽象类(Interface and Abstract Class)的区别
看一个JDK定义的一个接口Runnable。
Runnable接口
接口中的方法不指定自动是public的,变量自动是static和final的,因此接口可以当作定义常量的工具类用。我们反编译一个类验证一下。
自定义一个接口
用javap反编译一下,看看结果,从结果看方法默认是public的。
反编译结果
接口的多重继承(实现)
Java的类是不能多重继承的,如果想要实现多重继承的效果需要借助内部类,请参考:Java中怎么继承一个非静态的内部类?
然而接口是可以多重继承的,在多重继承的时候要考虑接口的冲突。
多重继承时,方法冲突
接口A和B都定义了相同的方法,只是返回值不同。类C实现A和B的时候就不知道到底实现那个接口的方法了。
接口的嵌套
接口中是可以嵌套在其他接口或者类中的,这就是接口的嵌套。接口中嵌套接口的情况比较少见,但是类中嵌套接口的情况就很多了。
接口嵌套在类中时,可以定义为private,private接口只能在当前类中使用,这样可以使此类有更好封装性,可读性和可维护性,这个就像使用内部类一样。
私有的接口
欢迎留言讨论,如果发现任务错误,请批评指正,谢谢!