# 多态
代码当中体现多态性,其实就是一句话,父类引用指向子类对象。
格式:
```java
父类名称 对象名 = new 子类名称();
或者:
接口名称 对象名 = new 实现类名称();
```
多态调用成员方法时:
访问规则,看new是谁,如果没有则向上找。
口诀:编译看左边,运行看右边。
多态对象调用成员变量时:
访问规则:
直接方法时,看等号左边是谁,优先用谁,没有则向上找。
口诀:编译看左边,运行看右边。
多态的好处:
在开发中我们不强调具体的对象是谁时,使用多态可以增强代码的扩展性。
向下造型是有风险的,在向下造型的时候需要判断对象是不是响应类型的数据。用关键字`instanceof`来判断,返回的是一个布尔值。
向上造型:一定是安全的,没有问题的,但是有一个弊端,一旦向上造型成功,那么无法调用子类原本的特有内容。
解决方法:向下造型(数据的还原)。