In .NET, both array and list have Enumerable as ancestor, so a method that accept Enumerable as an argument can receive both array and list as its argument. I wonder if ther
Basically, arrays have an implicit type that is a subclass of object. See Arrays in the JLS:
public static void main(String[] args) {
int[] ia = new int[3];
System.out.println(ia.getClass());
System.out.println(ia.getClass().getSuperclass());
}
> class [I
> class java.lang.Object
The way arrays and lists are handled is also not the same when we consider covariance/contravariance.
List
It gets even worse if we consider generics, but that's another topic. All in all, I don't know the rationale of this design, but we need to live with it.