本帖最后由 面向大众 于 2014-6-15 16:23 编辑
对于这个偏奇葩的问题还是让我这个准奇葩的人来回答好了...
之所以有多态出现,就是为了程序的扩展性和简洁性。在java中如何灵活使用成员变量和方法呢?假设在继承关系中没有多态的出现那么在写子类的时候还要重新定义成员变量,那这和从新开一个类和面向过程就没啥区别了。
java希望在子父类同时存在的情况下可以灵活调用这两个类中的方法和变量,那么多态这个概念就应运而生了。
其实这个也很好理解的,一个人在社会中不可能只有一个角色,比如你有两份工作,一份做网站一份兼职写app,那当领工资的时候你不可能用网站的身份领app的工资,即使这俩是同一个人,而且对你来说都是领工资。
那么,领工资这个行为就是抽象类或者父类的方法,而你领2份工资的时候要扮演两个角色,做网站和app。显然这在代码体现中就是继承父类的两个子类,子类中会有2个重写“领工资”的方法:“领网站工资”和“领app工资”。但是成员变量都没有变,都是你这个人,你不可能分身是吧。
多态就是具有多个状态,它可以解决一个父类有N个子类的时候,仅仅通过父类就可以调用子类方法的问题,大大提高了开发过程中的便捷性。楼主可以想象为什么它叫多态而不叫多子呢?
都是个人对多态的理解,希望能帮到楼主,别越来越绕。 |