, 同上, 都是继承自Animal类.
abstract class Reptile extends Animal{
}
3.4 Tiger类
老虎类就是1个实体类, 所以它必须重写所有继承自超类的抽象方法...因为执行时, Animal超类会根据引用指向的对象类型不同 而 指向不同的被重写的方法. 这个就是多态的意义....好了, 回到本文最重要的一个问题.
做个总结
需要实现多态
要实现的方法(功能)不是当前类族的必要(属性).
要为不同类族的多个类实现同样的方法(功能)....而抽象类(继承) 也可以实现多态
7.2. 要实现的方法(功能)不是当前类族的必要(属性).
上面的例子就表明, 捕猎这个方法不是动物这个类必须的,在动物的派生类中, 有些类需要, 有些不需要....如果把捕猎方法卸载动物超类里面是不合理的浪费资源.
所以把捕猎这个方法封装成1个接口, 让派生类自己去选择实现!
7.3. 要为不同类族的多个类实现同样的方法(功能).