有关于多态和静态绑定与动态绑定的知识

一、多态

    事物出现的多种体现形态(Java中指同一对象可以有不同类型的指向。)

  1、多态的体现:
    父类的引用指向了自己的子类的(或孙类)的对象。
    父类的引用也可以接受自己的子类对象。


  2、多态的前提:
    1)、必须是类与类之间有关系,要么继承、要么实现。
    2)、存在继承、  存在方法重写、   存在父类引用指向子类对象。


  3、多态的好处:
    提高了代码的复用性。


  4、多态的弊端:
    但是只能是父类的引用指向父类的成员。


  5、多态的应用:

  6、多态的代码特点(代码的注意事项)
    1)、多态中成员函数的特点:
      1、在编译时期:参阅引用型变量所属类中是否有调用的方法,如果有,编译通过, 否则,编译失败。
      2、在运行时期:参阅对象所属类中是否有所属方法。
    简单总结:成员函数在多态调用时,编译看左边、运行看右边。(动态绑定,迟绑定)

    2)、多态中成员变量的特点:
      编译和运行都参考左边的,(总结就是: 静态绑定)


二、数据转型:
  1、向上转型(up casting):就是将子类的对象转型成父类的引用(就是父类引用指向了子类的对象,此时此引用只能看见(访问)父类的成员)。
  2、向下转型(down casting):将向上转型的引用再转回来,就叫向下转型(此时引用能看见(访问)子类的成员变量)。

三、绑定:


  1、静态绑定:
    1)、存在条件:存在多态(继承、重写、转型)。
    2)、其中的“重写”的是静态方法、静态成员变量、成员变量。


  2、动态绑定:
    1)、存在条件:存在多态(继承、重写、转型)。
    2)、其中的“重写”的是非静态的方法。

四、多态总结:

    多态就是同一个对象在整个继承体系的不同表型形势, 也就是对于一个对象的不同引用。
  注:就是说, 对于一个确定的对象,不能向比他本身更低的类型转变。

五、关键字:instanseof


    用来判断一个对象是否属于某个类型,此处的类型是代表对象本身的类型(被new出来时的本来类型)。


    使用方法:对象名.instanceof 类型名 :cat1.instanceof Cat; 或者: cat.instanceof Animal 。

posted @ 2017-03-25 21:38  阿肯新  阅读(684)  评论(0编辑  收藏  举报