多态的概述
多态的格式与使用
多态中的成员变量的使用特点(其实没有任何变化)
访问成员变量的两种方式:
- 直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找
- 间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找
多态中,成员变量不可以发生覆盖重写(比如,可以在子类的成员变量上添加@Override,会发现报错),只有方法可以发生覆盖重写
多态中的成员方法的使用特点
在多态的代码中,成员方法的访问规则:
- 看 new 的是谁,就优先用谁,没有则向上找
口诀:编译看左边,运行看右边
对比:
- 成员变量:编译看左边,运行还看左边
- 成员方法:编译看左边,运行看右边
多态的好处
对象的向上转型
对象的向下转型
instanceof
如何知道一个父类引用的对象本来是哪个子类,怎么知道向哪个子类进行向下转型呢?
方案:用 instanceof
格式: 对象 instanceof 类名称 这会得到一个boolean值的结果,也就是判断前面的对象能不能当作后面类型的实例
向下转型时,在未知原本类型时,一定要用 instanceof,否则容易出异常