java学习阶段一 多态

java学习阶段一 多态

介绍

封装和继承可以说是为了多态而准备

多态:运行不同类的对象对同一消息做出不同的响应

基本知识

编译时多态(方法重载)

运行时多态 程序运行时动态决定调用哪个方法(主要指这个)

  • 多态条件 满足继承关系 父类引用指向子类对象

转型

  • 向上转型(隐式转型 自动转型) 子类对象转型为父类对象 父类引用指向一个子类

    父类名 对象名 = new 子类名();
    //或者
    子类名 对象名1 = new 子类名();
    父类名 对象名 = 对象名1;
    

    转型后,可以调用子类重写父类的方法以及父类派生的方法,无法调用子类独有的方法

  • 向下转型(强制) 先向上转型后向下转型

    子类名 对象名 = (子类名)对象名1;//对象名1为向上转型的指向
    

    转换后可以调用子类特有的方法

  • instanceof 运算符 向下转可行性判断

    //判断的对象 instanceof 判断的类
    

注意事项

1 子类无法重写父类的静态方法,向上转型依旧调用父类的静态方法

原文地址:https://www.cnblogs.com/tigo/p/14408402.html