Java 多态

多态:

格式:父类 变量 = new 子类();
  调用成员变量特点
    成员变量:编译运行看左边 (父类)
    编译时,如果父类有该成员变量,则编译成功,如果父类没有则编译失败
    运行时,结该成员变量指向父类

  调用成员方法特点
    成员方法:编译运行看左边 (父类)
    编译时,如果父类有该方法,则编译成功,如果父类没有则编译失败
    运行时,运行的结果走的是子类重写父类后的方法

  instanceof关键字:(返回布尔值)用于判断该变量是不是输入该类的实例
    左边如果跟右边在继承体系上没有任何关系,则编译失败
    Animal a1 = new Cat();
    Animal a2 = new Pig();
    boolean f1 = a1 instanceof Animal;

  多态的转型:
    1、向上转型:
      父类类型 变量名 = new 子类类型();
    2、Person p = new Student();
      向下转型:前提:已经向上转型的才可以强制向下转型
        父类类型 变量名 = new 子类类型();
        Person p = new Student();
        子类类型 变量名 = (子类类型) 父类类型的变量;
        Student stu = (Student) p

    向下转型后,可以调用子类独有的方法。

原文地址:https://www.cnblogs.com/yanghaoyu0624/p/11540787.html