java学习阶段一 多态
介绍
封装和继承可以说是为了多态而准备
多态:运行不同类的对象对同一消息做出不同的响应
基本知识
编译时多态(方法重载)
运行时多态 程序运行时动态决定调用哪个方法(主要指这个)
- 多态条件 满足继承关系 父类引用指向子类对象
转型
-
向上转型(隐式转型 自动转型) 子类对象转型为父类对象 父类引用指向一个子类
父类名 对象名 = new 子类名(); //或者 子类名 对象名1 = new 子类名(); 父类名 对象名 = 对象名1;
转型后,可以调用子类重写父类的方法以及父类派生的方法,无法调用子类独有的方法
-
向下转型(强制) 先向上转型后向下转型
子类名 对象名 = (子类名)对象名1;//对象名1为向上转型的指向
转换后可以调用子类特有的方法
-
instanceof 运算符 向下转可行性判断
//判断的对象 instanceof 判断的类
注意事项
1 子类无法重写父类的静态方法,向上转型依旧调用父类的静态方法