多态
一,多态概述
Java的多态体现在一个子类对象既可以给这个子类引用变量赋值,又可以给这个子类的父类变量,父类引用变量可以指向子类对象。
要点:
1,使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。
2,多态的前提是必须有子类父类关系或者实现接口关系。
二,多态的声明定义
格式:
父类类型 变量名 = new 子类类型;
变量名.方法名();
普通类:父类 变量名 = new 子类();
抽象类:抽象类 变量名 = new 抽象子类();
接口:接口 变量名 = new 接口实现();
父类的引用变量指向子类对象。
三,多态的成员特点
1,成员变量编译的时候,会参考父类中是否有这个变量,若有,编译成功;若无编译失败。编译运行全看父类。
2,成员方法编译的时候,会参考父类中是否有这个方法,若有,编译成功;若无,编译失败。编译时看父类,运行看子类。
四,instanceof 关键字
关键字instanceof 用于引用数据类型的比较,判断某个对象是否属于某种数据类型。
格式:
boolen b = 对象 instanceof 数据类型;
五,多态向上转型
java是一种强制数据类型的语言,参数运算的数据,保证数据类型的统一性,若运算的两个数据类型不同时,出现自动类型提升,将取值范围小的自动提升为取值范围大的,故而范围小的看成子类,范围大的看成父类。
格式:
父类类型 变量名 = new 子类类型;
六,多态向下转型
指父类类型强制转回子类类型,作用是其子类可调用特有的功能。
格式:
子类类型 变量名 = (子类类型)父类类型的变量