多态的前提是继承。
一个对象具有多种形态。
把子类对象赋值给父类变量,父类指针指向子类。
通过父类调用方法,执行的是子类方法。
创建一个动物类为父类,再分别创建一个狗类和猫类来继承,实例化狗类和猫类,变量赋值给动物类。
父类

子类
测试类
运行结果没有区别
在上面的基础上再创建一个饲养员。
多态情况下的方法调用
只有父类当中有方法 :执行父类的方法。
只有子类有,父类没有方法 :报错(继承状态和多态状态下的区别)。
子类和父类都有调用的方法 :执行子类的方法。
父类和子类都有static方法 :执行父类的方法
普通人/超人
instanceof 是 Java 的保留关键字。
它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
运行结果,内存地址相同