面向对象三大特征之一(继承,封装,多态)
多态的应用场景:根据传递对象的不同,调用不同的show方法
一、多态的定义
同类型的对象,表现出的不同形态(对象的多种形态)
二、多态的表现形式
父类类型 对象名称=子类对象
三、多态的前提
四、多态的好处
使用父类类型作为参数,可以接受所有子类对象,体现多态的扩展性与便利
五、多态调用成员的特点
注:
1.编译看左边:Javac编译的时候,会看左边的父类中有没有这个变量(方法),如果有编译成功,没有则编译失败。
2.运行也看左边:Java运行代码的时候,实际获取的就是左边父类中成员变量的值
3.运行看右边:Java运行代码时,实际上运行的是子类的方法
六、多态的优势
七、多态的弊端
扩展:instanceof关键字(作用:判断该变量是否为该类型)
格式:变量名 instanceof 类名

新特性
先判断a是否为Dog类型,如果是,则强转成Dog类型,转换之后变量名为d,如果不是,则不强转,结果直接是false

引用数据类型的类型转换的两种方法
自动类型转换(由小变大:Person p=new Student();)
强制类型转换(父类强制变为子类Student s=(Student)p;)
强制转换的作用:
可以转换成真正的子类类型,从而调用子类独有功能
(注:转换类型与真实对象类型不一致会报错,可以用instanceof关键字进行判断)