【JAVA 学习】 多态的向上转型与向下转型

多态的前提:两个对象(类)存在继承关系

向上转型:

  本质:父类的引用指向子类的对象

  语法:父类类型  引用名 = new 子类类型();

  特点:编译类型看左边,运行类型看右边;

  规则:(1)、可以调用父类中的所有成员(需遵守访问权限)

     (2)、但是不能调用子类的特有的成员

       (3)、因为在编译阶段,能调用哪些成员,是由编译类型来决定的

     (4)、最终运行效果看子类(即运行类型)的具体实现,调用方法时,按照从子类(运行类型)开始查找,然后调用

***属性没有重写之说,属性的值看编译类型***

向下转型:

  语法:子类类型  引用名 = (子类类型)父类引用;

  只能强转父类的引用,不能强转父类的对象;

  要求父类引用必须指向的是当前目标类型的对象

  当向下转型后,可以调用子类类型中所有成员

***instanceOf 比较操作符,用于判断对象的运行类型是否为XX类型,或XX类型的子类型***

 

java的动态绑定机制

  1、当调用对象方法时,该方法会和该对象的内存地址(运行类型)绑定

  2、当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用

  

posted @ 2022-03-09 15:06  攀登山峰  阅读(84)  评论(0)    收藏  举报