您的位置:首页 > 其它

多态 向上转型 动态绑定

2009-02-02 17:43 85 查看

1.成员变量和静态方法不具有多态性,因为它们都是编译时绑定的。
  当把一个子类的引用向上转型成其父类后,调用的是父类的域和静态方法,如在子类中声明与父类private和static相同名
  的域和方法相当于新建,而且在子类中同时具体两者(且同名)

2.协变返回类型
   当复写一个方法的时候,我们要求的返回类型,方法名,方法参数都需保持一致,这样才能达到覆盖的目的。
   在JavaSE5中新增:重写方法的返回类型可以是被覆盖方法返回类型的子类。
   这是因为可以向上转型的缘故。多态的表现啊。重新的方法的返回类型是多态的........

3. 多态,转型
 
   转型的只是引用,向上转型后,是站在父类往下看,屏蔽掉了子类的扩展域,即把子类对象当作父类对象来使用。
   并且向上转型后再来个向下转型可“神奇的”恢复那些“丢失的信息”,并且java会对向下转型进行检查。
   应该说转型的是引用变量而不是对象
   应该说引用变量具有多态性
   对象在堆中是不可改变的

4. 首先应该考虑使用组合,组合更具灵活性。盲目的选择继承会强迫类进入继承层次里反倒加重了设计负担。
   问题简化,减少类的复杂度应该是指定思想。
   在使用继承的时候,尽量使用扩展减少复杂度,考虑灵活的时候才去做重写替代。

  看了半本书,都是讲类与类之间的关系,告诉我它们的关系是什么样子的,告诉我可以用什么关键字去表达,组织
  这些类。OOP编程就是设计,组织类之间的关系。现在才有点开始认识什么是OOP。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: