我读过很多关于java中静态绑定和动态绑定之间区别的文章,但是没有一篇真正谈到为什么我们需要动态绑定。为什么有些代码只能在运行时绑定?为什么不能在编译时绑定所有代码?我理解方法重写和多态性的概念,但我不明白的是为什么编译器(在编译时)不能辨别对象来自子类,而应该使用该方法。
qxgroojn1#
动态绑定允许相同的例程(函数、方法)作用于不同的类型 Liskov's Substitute Principal 例如
Liskov's Substitute Principal
Set<Employee> fmList = getEmployees();
您可以轻松地替换 getEmployees() 返回特定类型的集合。https://en.wikipedia.org/wiki/solid如何看待多态性与亚型
getEmployees()
1条答案
按热度按时间qxgroojn1#
动态绑定允许相同的例程(函数、方法)作用于不同的类型
Liskov's Substitute Principal
例如您可以轻松地替换
getEmployees()
返回特定类型的集合。https://en.wikipedia.org/wiki/solid
如何看待多态性与亚型