我的一亩三分地

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  2 随笔 :: 14 文章 :: 3 评论 :: 0 Trackbacks
        对于重载方法(overloaded method)的选择是静态的,而对于被改写的(overwritten method)方法的选择是动态的。------摘自《effective java》
         这个该怎么来理解呢?其实就是说当出现继承关系时,到底是调用被改写的方法还是调用没有被改写的方法,是动态的决定的。是父类对象就调用父类方法,是子类对象就调用子类方法。而不管编译时的类型。如A的子类有B、C,A[ ] test = new A[ ]{ new A(),new B(),new C()},那么在以后通过test[i]来访问每个对象,则test[2]调用的是C对象改写的方法。对于重载方法来说,如果编译时类型就已经确定,在运行时虽然类型不同,但是不影响重载方法的选择。See 《Effective java》P109。 
posted on 2006-10-09 21:09 王某某 阅读(221) 评论(0)  编辑  收藏 所属分类: Java基础

只有注册用户登录后才能发表评论。


网站导航: