作用:现实事物经常会体现出多种形态,以学生为例,学生是人的一种,像是学生张三,不仅是学生,还是人,
出现了俩种形态.如果Student类继承了Person类,一个Student的对象就又是Student还是Person.
java的多态体现在一个子类对象,不仅可以给这个子类引用别量赋值,又可以给这个子类的父类(或接口)变量赋值.
多态的使用方法(用父类类型的变量去引用子类的对象):
父类类型(或接口) 变量名= new 子类类型(); 变量名.方法名();
同一个父类的方法会被不同子类重写,当调用方法的时候,调用的是各个子类重写的方法
但是用父类的变量去引用子类类型的对象.只能访问子类的父类成员变量和成员方法,而不能访问子
类中有但父类中没有定义的成员变量和成员方法.
多态转型
多态转型有俩种:
1、向上转型:父类类型变量引用子类类型变量
父类类型 变量名 = new 子类类型();
当子类使用父类的功能就能完成相应的操作,这时就可以使用向上转型
2、向下转型:子类类型变量引用父类类型变量
子类类型 变量名 =(子类类型) new 父类类型();
当父类想要使用子类特有功能的时候,就需要使用向下转型了;
instanceof关键字:像一个二目运算符,用于判断一个对象是否属于某种数据类型
对象 instanceof 数据类型;//返回值为boolean型,true或false
课后习题:
1、面向对象的三大特性是什么?
继承、封装、多态
2、多态转型有哪些实现方式?
有向上转型和向下转型,向下转型是使用父类类型变量引用子类对象,这样可以使用父类的方法,向下转型是使用子类类型变量引用父类对象(将父类对象强制转换成子类类型),这.当想要子类使用父类方法时,使用向上转型,想要父类使用子类方法时,使用向下转型.