i\'m trying to understand java behaviour. Using this interfaces :
public interface IA {}
public interface IB extends IA {}
public class myClass implements IB
Because the compiler only knows that a
is an instance of IA
. Overloads are determined at compile time based on the compile-time types of the expressions involved, and the compile-time type of a
is IA
.
(Compare this with overriding, where the method implementation is chosen at execution time based on the actual type involved.)