当前位置: 代码迷 >> 综合 >> java中接口的多继承,对不同返回值,相同方法名和传入参数的相同方法报警?
  详细解决方案

java中接口的多继承,对不同返回值,相同方法名和传入参数的相同方法报警?

热度:53   发布时间:2024-02-25 04:26:41.0

对于接口来说,传入参数冲突是overload,则不是问题, 只有传出参数这个问题是接口多继承不允许的
例如:
public interface IA {
void doSomething();
}
public interface IB {
Integer doSomething();
}

public interface IAB extends IA, IB {
@Override
public void doSomething();

@Override
public Integer doSomething();
}

这种情况编译器会告诉你, IA, IB 接口冲突,是不允许的

 

回答:本质上就是重载的问题

当IAB继承IA和IB的时候,有两个方法名称相同,参数相同,但是返回值类型不同的方法doSomething();但是这两个方法在同一个接口IAB中,此时不满足重载的条件:方法名称相同,但是参数不同。因此会出错。

继承的两个同名方法或者满足重载的要求(此时这两个方法同时存在),或者参数相同、返回值相同(即完全冲突,此时需要重写,重写完之后只剩一个方法)