多态 向上转型 动态绑定
2009-02-02 17:43
85 查看
1.成员变量和静态方法不具有多态性,因为它们都是编译时绑定的。
当把一个子类的引用向上转型成其父类后,调用的是父类的域和静态方法,如在子类中声明与父类private和static相同名
的域和方法相当于新建,而且在子类中同时具体两者(且同名)
2.协变返回类型
当复写一个方法的时候,我们要求的返回类型,方法名,方法参数都需保持一致,这样才能达到覆盖的目的。
在JavaSE5中新增:重写方法的返回类型可以是被覆盖方法返回类型的子类。
这是因为可以向上转型的缘故。多态的表现啊。重新的方法的返回类型是多态的........
3. 多态,转型
转型的只是引用,向上转型后,是站在父类往下看,屏蔽掉了子类的扩展域,即把子类对象当作父类对象来使用。
并且向上转型后再来个向下转型可“神奇的”恢复那些“丢失的信息”,并且java会对向下转型进行检查。
应该说转型的是引用变量而不是对象
应该说引用变量具有多态性
对象在堆中是不可改变的
4. 首先应该考虑使用组合,组合更具灵活性。盲目的选择继承会强迫类进入继承层次里反倒加重了设计负担。
问题简化,减少类的复杂度应该是指定思想。
在使用继承的时候,尽量使用扩展减少复杂度,考虑灵活的时候才去做重写替代。
看了半本书,都是讲类与类之间的关系,告诉我它们的关系是什么样子的,告诉我可以用什么关键字去表达,组织
这些类。OOP编程就是设计,组织类之间的关系。现在才有点开始认识什么是OOP。
相关文章推荐
- Java方法的静态绑定与动态绑定讲解(向上转型的运行机制详解)
- 向上转型:动态绑定--[Java]
- Java动态(后期)绑定和overloading 向上转型
- Java动态(后期)绑定和overloading 向上转型
- 对象转型casting 及其动态绑定及多态
- Java 基础(8)—— 向上转型、向下转型、动态绑定、静态绑定
- Java学习之面向对象(1.Object类,(1)toString方法,(2)equals方法,2.对象转型(casting),3.动态绑定与多态,4.抽象类(abstract),5.Final关键字)
- Java动态(后期)绑定和overloading 向上转型
- Java动态(后期)绑定和overloading 向上转型
- 多态polymorphism,向上转型和动态方法调度有什么用?
- 面向对象编程(五)多态--对象上下转型,动态绑定和静态绑定,应用
- Java动态(后期)绑定和overloading 向上转型
- Java动态(后期)绑定和overloading 向上转型
- 【Java】多态和动态绑定中的坑
- java动态绑定和多态
- 多态,及向上下转型
- 从零开始学Java之多态 向上转型与向下转型
- 抽象、封装、继承、扩展、覆盖、多态、动态绑定
- OC多态,动态类型绑定
- java多态与动态绑定例子