静态绑定:在编译的时候确定类型,绑定对象。
动态编译:在运行的时候确定类型,绑定对象。
小编也是第一次接触这两个名词,下面来谈谈对它的理解,若有不对之处望提出,以便改正。
备注:
IVehicle是我的接口,BWM是继承接口的类,forward是IVehicle里的一个方法,在BWM里有重写了。
静态绑定是我们初写小代码时一般会使用的方法,其实也就是两行代码;
IVehicle vehicle1=new BWM();
vehicle1.forward(100);
而动态绑定,就是会用在一些上线的APP里呀,比如淘宝突然出现点小问题,那我不可以说暂停运行,然后我修改一下再上线,如果有这么坑的软件,想必我们也不会那么喜欢使用。所以一般出现问题之后,我们是可以同步去修改的。
Class<?> c=Class.forName("com.chan.ref0122.BWM");
Object object=c.newInstance();
IVehicle vehicle2=(IVehicle)object;
vehicle2.forward(500);
在这里大家注意啦,不要导入这个包
import org.omg.CORBA.Object;
不然会提示你强制转型
Object object=(Object) c.newInstance();
看我的运行结果:
宝马前进:100
宝马前进:500
由此知道,两种绑定都是可以运行的。