package p302;
/**
* @author QinYingjie
* @version 1.0
*/
public class p306 {
// 多态:多种状态
// 1.方法的多态:方法的重写与重载
// 2.对象的多态:对象的向上转型和向下转型
//
// 重点:对象的多态
// 1.一个对象的编译类型和运行类型可以不一致
// 2.编译类型在定义对象时,就确定了,不能改变
// 3.运行类型是可以改变的
// 4.编译看等号左边,运行看等号右边。
}
//----------------------------------------------------------------
// 向上转型
// 多态的前提是:两个对象存在继承关系
// 多态的向上转型
// 1.本质:父类的引用指向了子类的对象
// 2.语法 父类类型 引用名 = new 子类类型();
// 3.特点:编译看等号左边,运行看看等号右边
// 可以调用父类中的所有成员
// 不能调用子类特有成员
// 最终运行效果看子类的具体实现
//--------------------------------------------------------------------
//向下转型
//语法 子类类型 子类引用 = (子类类型) 父类引用
//只能强转父类的引用,不能强转父类的对象
//要求父类的引用必须指向的是当前目标类型的对象
//可以调用子类类型中的所有成员
//属性没有重写之说,属性值看编译类型
//instanceOf 比较操作符,用于判断对象的类型是否为XX类型或者是XX类型的子类型