体现:父类引用变量可以指向子类对象
前提:必须有子父类关系或者类实现接口关系,否则无法完成多态
使用多态后的父类引用变量调用方法时,会调用子类重写后的方法
多态的定义与使用格式:
父类类型/接口类型 变量名 = new 子类类型();
变量名.方法名();
多态成员变量:
当子父类中出现同名的成员变量时,多态调用该变量时:
编译时期:参考的是引用型变量所属的类中是否有被调用的成员变量。没有,编译失败。
运行时期:也是调用引用型变量所属的类中的成员变量。
简单记:编译和运行都参考等号的左边。编译运行看左边。
多态成员方法:
编译时期:参考引用变量所属的类,如果没有类中没有调用的方法,编译失败。
运行时期:参考引用变量所指的对象所属的类,并运行对象所属类中的成员方法。
简而言之:编译看左边,运行看右边。
-
- instanceof关键字
-
boolean b = 对象 instanceof 数据类型;
如果属于对应类型,返回值为true,反之false
-
- instanceof关键字