看如下代码,为什么Collection作为接口并没有对toString作重写,却能调用toString?
public class Text {
public static void main(String[] args) {
Collection coll = new ArrayList();
coll.add("fdf");
coll.add("ffdg")
System.out.println(coll);//[fdf, ffdg]
}
虽然你的引用是父类接口Collection,但是它的真身实际上是Arraylist类型,只是将子类实例赋值给了父类引用,故coll.toString实际上是调用了Arraylist重写的toString。