绑定
将一个方法调用同一个方法主体关联起来被称作绑定。
前期绑定
若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现),叫做前期绑定。(面向过程的语言中不需要选择就默认的绑定方式,例如,C语言只有这一种)
动态绑定
在运行时根据对象的类型进行绑定,叫做多态(后期绑定,也叫动态绑定或运行时绑定),体现在可以自动向上转型。
//ride1方法调用的时候,需要传入Bike对象
public void ride1(Bike bike) {
System.out.println("ride " + bike);
}
//ride2方法调用时,需要传入Transport对象
public void ride2(Transport transport){
System.out.println("ride " + transport);
}
//如果Bike extends Transport
//那ride2方法也可以接收Bike对象,这就是动态绑定的一种现象,向上转型
//new Bike的时候 还可以写成:Transport transport = new Bike();
//编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体,并加以调用。
//java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定
java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。