我个人理解,接口本质上是抽象类,依此理解的话,HashMap就是Map的子类对不对?所以以上语句会出现运行期绑定?还是我哪里理解错了?java子类可以重载父类的方法,而不overload那个方法?
Java中, Map map = new HashMap() 是在编译期就通过类型推断绑定了, 可以看到这里已经显式的调用了 HashMap 的构造函数
Map map = new HashMap()
HashMap
重载是Overload, 而"子类可以重载父类的方法"是指Override, 叫做重写或者覆盖 https://en.wikipedia.org/wiki...
Java 的范性是编译时进行类型推断,不是运行时。
Java中,
Map map = new HashMap()
是在编译期就通过类型推断绑定了, 可以看到这里已经显式的调用了HashMap
的构造函数重载是Overload, 而"子类可以重载父类的方法"是指Override, 叫做重写或者覆盖 https://en.wikipedia.org/wiki...
Java 的范性是编译时进行类型推断,不是运行时。