日期:2014-05-20  浏览次数:20717 次

java方法重写
请问java中,子类重写父类的方法返回值的类型必须是父类对应方法返回值类型或其子类,这个机制存在的意义是什么?

------解决方案--------------------
这个存在的意义在于多态的表现特征。由于父类已经无法描述多种多样的子类表现结果,但是他们都有类似的表现过程,这是一个非常重要的问题。为了实现重用,为了解决这样的问题,防止类变得无组织无纪律的泛滥,采用这种重写的方式。举个例子:父类是果树,子类有桃树,苹果树。父类果树提供了结出果实的方法,但是桃树只能结桃子,苹果树只结苹果,于是子类只有覆盖掉父类结果实的方法,实现自己特有的方式。为了实现良好的封装,苹果数结的苹果,桃树结的桃子,由于这个结果实与父类的结果实是一种总分形式的结构,往上说就是苹果数和桃树都结出了果实。这样的限定措施会保证子类的结果实方法不会结出果实之外的东西,例如足球。这些限定措施都是为了保证良好的封装和限定。