У меня два интерфейса в "CASE 1", в которых у меня один и тот же метод с разными типами возвращаемых данных, и я расширяю оба интерфейса в другом интерфейсе, тогда я получаю ошибку времени компиляции, поскольку возвращаемые типы несовместимы для унаследованных методов, но здеськогда мы расширяем два интерфейса в третьем интерфейсе, тогда методы перегружаются, а при перегрузке метода возвращаемый тип метода не оказывает влияния, тогда почему это дает ошибку.
Также, если я использую одни и те же методы в двух интерфейсах с одинаковым возвратомвводит "CASE 2" и расширяет оба интерфейса в третьем интерфейсе, тогда здесь я не получаю никаких ошибок.Почему?
CASE 1
Interface1.java
public interface I1
{
int m();
}
Interface2.java
public interface I2
{
void m();
}
Interface3.java
public interface I3 extends I1,I2
{
}
CASE 2
Interface1.java
public interface I1
{
int m();
}
Interface2.java
public interface I2
{
int m();
}
Interface3.java
public interface I3 extends I1,I2
{
}