本质 父类的引用指向了子类的对象 Object obj = new Cat() object,animal都是cat的父类 编译类型看左边,运行类型看右边可以调用父类中的所有成员(需要遵循访问权限),不能调用子类中特有成员 例子 catchMouse()是Cat类的方法 会报错的原因: 在编译阶段,会不会报错是由编译器决定的,而编译看对象的编译类型,animal对象的编译类型是Animal,没有catchMouse,所以会报错 最终的运行结果看子类的具体实现