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