我一直想知道我在很多代码中看到的这种类型的java实例化的好处是什么
List<Object> objList = new ArrayList<Object>();
而不是
ArrayList<Object> objList = new ArrayList<Object>();
两者都是实例化Java ArrayList对象的有效方法,但为什么要使用第一个?
为什么objList应该作为接口而不是实现它的实际类?这有什么用处?
另外,在编译器级别,当我们调用特定于ArrayList而不是接口List的objList上的方法时,粗略地说,当objList仅作为通用obj进行转换时,编译器如何“知道”该方法属于ArrayList。这是一个实现List的 some 类的实例?