【发布时间】:2017-09-03 03:25:41
【问题描述】:
我正在尝试理解后期绑定。并搜索结果: 后期绑定:在运行时执行变量之前,类型是未知的;通常通过赋值,但还有其他方法来强制类型;动态类型语言将此称为底层特性,但许多静态类型语言都有一些实现后期绑定的方法。
例子是这样的:
public class DynamicBindingTest {
public static void main(String args[]) {
Vehicle vehicle = new Car(); //here Type is vehicle but object will be Car
vehicle.start(); //Car's start called because start() is overridden method
}
}
class Vehicle {
public void start() {
System.out.println("Inside start method of Vehicle");
}
}
class Car extends Vehicle {
@Override
public void start() {
System.out.println("Inside start method of Car");
}
}
但有什么好处 Vehicle = new Car();使用这个。应该只写 汽车 car = new Car(); ?请给我解释一下?
【问题讨论】:
-
泛型开发,依赖注入,总体来说真的要看情况。
-
@markspace 它有一个很好的答案。
-
这通常称为polymorphism。
标签: java late-binding