Java_Day10 多态 + 内部类 .01 .02 多态 猫 x = new 猫(); 动物 x = new 猫(); 一个对象对应着不同类型。 多态在代码中的体现:父类或者接口的引用指向了其子类的对象。 .03 多态的好处:提高了代码的扩展性,前期定义的代码可以使用后期的内容。 第 100 行 (animal a) 使代码简单,其下面的两个 method 就可以省略 ,这是多态性的使用。 .04 动态的弊端 前期定义的内容 不能调用后期子类中的特有内容。 84 行会出现错误,因为 animal 中没有 catchMouse 的方法 多态的前提: 1 :必须要有关系,继承,实现。 2 :要有覆盖。 .05 转型 猫提升为动物 只能使用动物类中的方法 , 如果做 eat 这个动作,调用的是子类猫中的吃,因为子类中与父类有相同的 eat 方法,而子类覆盖了父类的 eat 方法(覆盖只发生在函数上,不发生在变量上) 专业讲:向上转型。 将子类型隐藏。就不用使用子类的特有方法。 ( 除非父类子类有同样的方法,子类会覆盖父类,执行子类中的方法) Animal a 强制转换为( cat ) 即向下转型 但是 a 创建时必须是 cat 型 如果是 animal a = new animal() 或者 new 成其他 dog 型等 , 则 a 不能强转成 cat 型 错误例子: