介绍
本篇文章给大家分享的是有关java如何实现一个类两个接口,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
直接用英文逗号分隔就可以了,比如:
交互IHello { 字符串sayHello(字符串名称); } 接口IHi { sayHi字符串(字符串名称); } 类ServiceImpl实现IHello IHi{//实现三个四个…n个接口都是使用逗号分隔 公共字符串sayHello(字符串名称){ 返回“你好,“+名称; } 公共sayHi字符串(字符串名称){ 返回“嗨,“+名称; } }
<强> Java一个类实现的多个接口,有相同签名的违约方法会怎么办? 强>
看代码吧~
所以,上面的代码,输出是
你好从B
引用>如果这样呢?
公共类D实现{ } 公共类C扩展D实现B, { 公共静态void main(字符串…args) { 新的C () .hello (); } }UML图是这样的
规则1说,类声明的方法优先级高,但是,D没有覆盖你好方法,它只是实现了接口a所以,它的违约方法来自接口答:规则2说,如果类和超类没有方法,就是子接口赢。所以,程序打印的还是“你好”从B。
所以,如果这样修改代码
公共类D实现{ 空白hello () { System.out.println(“你好从D"); } } 公共类C扩展D实现B, { 公共静态void main(字符串…args) { 新的C () .hello (); } }程序的输出就是“你好”从D。
如果D这样写
公共接口 默认空hello () { System.out.println(“你好从A"); } } 公共接口B { 默认空hello () { System.out.println(“你好从B"); } } 公共类C实现B, { }UML图如下
会生成这样的编译器错误
“错误:C类继承无关的违约hello()类型B和A !”
引用>怎么修改代码呢?只能明确覆盖某接口的方法
公共类C实现B, { 空白hello () { B.super.hello (); } }如果代码是这样的,又会怎样呢?
以上就是java如何实现一个类两个接口,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。java如何实现一个类两个接口