1 多态
方法的多态
方法的重载和重写
对象的多态(核心)
一个对象的编译类型和运行类型可以不一致
编译类型在定义对象时,就确定了,不能改变
运行类型是可以变化的
编译类型看定义时= 号的左边 运行类型看 = 号的右边
多态的向上转型
父类的引用指向了子类的对象 -> 父类类型 引用名 = new 子类类型();
子类失去了使用父类所没有的方法的权力
大量子类的情况下代码的复用性会大大提高
多态的向下转型
子类的引用指向父类对象 -> 子类类型 引用名 = (子类类型) 父类引用;
向下转型需先向上转型
只能强转父类的引用,不能强转父类的对象
要求父类的引用必须指向的是当前目标类型的对象
可以调用子类类型中所有的成员