Перегрузка функции Java для массива объектов, которые реализуют общий интерфейс [дубликат]JAVA

Программисты JAVA общаются здесь
Anonymous
Перегрузка функции Java для массива объектов, которые реализуют общий интерфейс [дубликат]

Сообщение Anonymous »

У меня есть классы, которые реализуют общий интерфейс. В интерфейсе функция определяется 3 параметрами. Однако для некоторых классов они реализуют интерфейс, который расширяет общий интерфейс, который перегружает функцию и имеет 5 параметров. < /P>

Код: Выделить всё

public interface CommonInterface{
public double apply(Object param1, double param2, double param3);
}

public class CommonClass implements CommonInterface{
public double apply(Object param1, double param2, double param3){
doSomething();
}
}
< /code>
public interface DifferentInterface extends CommonInterface{
public double apply(Object param1, Object param2, Object param3, double param4, double param5);
}

public class DifferentClass implements DifferentInterface{
public double apply(Object param1, double param2, double param3){
doSomething();
}
public double apply(Object param1, Object param2, Object param3, double param4, double param5){
doSomething();
}
}
< /code>
When I create an array of objects of these classes and hard code them so I know which index has which class, when I try to call the apply function with 5 arguments, I get the error Expected 3 arguments but found 5
.

Код: Выделить всё

public class Class1 {
objects = new CommmonInterface[2];
objects[1] = new CommonClass();
objects[2] = new DifferentClass();
objects[1].apply(arg1, arg2, arg3);
objects[2].apply(arg1, arg2, arg3); // Works
objects[2].apply(arg1, arg2, arg3, arg4, arg5); // Error
< /code>
I am not too sure why trying to overload the function does not work here. Is it not working because the DifferentClass
реализует интерфейс, который реализует общий интерфейс, и, поскольку я определил, что мой массив имеет тип CommonIterface , мы не можем вызвать метод Apply с 5 параметрами?

Подробнее здесь: https://stackoverflow.com/questions/795 ... -interface

Вернуться в «JAVA»