I@R_881_2419@ my@R_881_2419@=new Rectangle();
然后,稍后,如果你决定要使用其他类型的框(也许还有另一个库,其中框的类型更好),则将代码切换为:
I@R_881_2419@ my@R_881_2419@=new OtherKindOf@R_881_2419@();
一旦习惯了,就会发现它是一种很棒的(实际上是必不可少的)工作方式。
另一个原因是,例如,如果要创建一个盒子列表并对每个盒子执行一些操作,但是希望该列表包含不同种类的盒子。在每个盒子上,你可以执行以下操作:
my@R_881_2419@.close()
(假设I@R_881_2419@具有close()方法),即使my@R_881_2419@的实际类根据迭代中所位于的盒子而改变。