Код: Выделить всё
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Подробнее здесь: https://stackoverflow.com/questions/795 ... -interface