1.概述
是指同一行为,具有多个不同表现形式
2.定义
定义前提:
1.继承或实现
2.方法重写
3.父类引用指向子类对象
3.多态的体现
父类类型 变量名 = new 子类对象;
变量名.方法名
代码示例
父类Person
public abstract class Person { public abstract void study(); }
子类1
public class StudentOne extends Person { @Override public void study() { System.out.println("学习数学"); } }
子类2
public class StudentTwo extends Person { @Override public void study() { System.out.println("学习音乐"); } }
测试类
public class test { public static void main(String[] args) { Person stu1 = new StudentOne(); Person stu2 = new StudentTwo(); stu1.study(); //学习数学 stu2.study();//学习音乐 } }
4.多态的优点
使程序编写的更简单,并有良好的扩展。
5.应用类型转换
(1)向上转型
多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的
格式:
父类类型 变量名 = new 子类类型();
(2)向下转型
父类类型向子类类型向下转换的过程,这个过程是强制的。
格式:
子类类型 变量名
=
(
子类类型
)
父类变量名
;
使用场景:当需要用到子类特有的方式时需要向下转型