多态
2024年11月17日大约 1 分钟
多态:在不同的时刻体现不同的状态
前提:多态的前提时继承
// 格式
父类名称 对象名 = new 子类名称();
接口名称 对象名 = new 实现类名称();
访问成员变量的两种方式:
- 直接通过对象名称访问成员变量:等号左边是谁,优先使用谁,没有则向上找
- 简介通过成员方法访问成员变量:看方法属于谁,优先使用谁,没有则向上找
成员方法的访问规则:看new
的是谁,就优先用谁,没有则向上找
编译看左边,运行看右边
对象的向上转型
,就是多态写法:
格式:父类名称 对象名 = new 子类名称();
含义:右侧创建一个子类对象,把他当作父类来看待使用
注意事项:向上转型一定是安全的
,从小范围转向了大范围
弊端:一旦向上转型为父类,那么就无法调用子类原本特有的内容
解决方法:向下转型
对象的向下转型
,其实就是一个【还原】动作
格式:子类名称 对象名 = (子类名称)父类对象;
含义:将父类对象,还原成为本来的子类对象
注意事项:必须保证对象创建的时候就是他的子类,才能向下转型,否则就会报错
格式:对象
instanceof
类名称这样将会得到一个布尔值结果,也就是判断前面的对象能不能当作的后面类型的实例