《Java经典入门指南》课后习题及答案Chapter 11
1.用自己的话描述多态性。
answer:
定义: 多态性是一个OOP特性,它使对象在接收到一个方法调用时,能够确定调用哪个方法实现。
多态实现的基础: 除static和final方法之外,JVM不将方法调用和方法体链接(或绑定),而是在运行时才决定将方法调用绑定到方法体。java的方法绑定发生在运行时,而不是编译时。
示例: A a=new B();
情况可能是(1)B是A的子类;(2)B或B的父类实现了接口A。
在此处,a的类型是a,但a.getClass().getname()得到的是B。因为编译时a的类型是A,运行是a的类型是B。当a调用的方法在A和B中都有时,会调用B的方法,而当调用的方法只在A中有时,JVM会根据B沿着类层次结构向上,得到调用的方法并运行它。
2.在什么情况下多态性最有用?
answer:多态性是指在不考虑实例类型的情况下使用实例。多态性增加了程序的灵活性和可扩展性。在有灵活需求的情况下可发挥较大作用。