虽然多态不是很难理解,但是我感觉在编程过程中很少用啊,多态的意义到底在哪里?请高手门指点一下在实际编程中的应用.还有接口的用途,除了实现多继承外,我感觉接口毫无用处,接口的方法必须在子类中实现,既然还是要定义和不实现接口子类自身定义这些方法有什么区别?无非又是多了一种运用多态的方法,归根结底又是回到多态的意义上来了.

解决方案 »

  1.   

    比喻说你在定义一个函数的参数为接口
    可以实现通用性,提高代码的重用,也就提高了程序的开发效率。
    例如List这个接口,
    下面的所有子类,都可以传参
      

  2.   

    还是不太明白,编写的程序太少了,yifengtpf能不能介绍一下怎样才能写出一个项目,我还是个学生,而且java是自学的,感觉语法方面的学习困难不是很大,就是没有人指导,没有设计过项目,无法实现一个质的飞跃.
      

  3.   

    写framework基类、工具类的时候,这些特性会用的比较多。
      

  4.   

    跟你说个简单的点的吧。你现在已经做好了一个项目,假如是学生成绩查询,那我们知道查询出的成绩肯定是按某一顺序进行排序的,当前是按学生姓名进行排序的,而且目前你只实现了这一个关键字排序。好了现在这个项目交付使用。之后,使用者对这样的排序不是十分地满意,再在要追加按学生的总分进行排序,前提要求是原来写好的那些代码一个字母都不能动。现在你做为这个项目的设计者,当初你认为应该如何设计这个呢?一般在设计时,做一个用于排序的接口(ScoreSort),在第一次项目时实现一个学生姓名排序的类(ScoreSortByName),再使用一个 XML 配置文件,将这个排序的类名写到配置文件中,在程序中我们只要写上:ScoreSort sort = (ScoreSort)Class.forName(implementClass).newInstance(); 其中 implementClass 就是从 XML 中读取具体的实现类。在第二次增加了按总分排序,那我们只需要增加一个按总分排序的实现类就可以了,要按这样排序的话,只需要将 XML 文件中的实现类名改掉就可以了。这样就保证了在即有代码下的扩展,符合面向对象设计原则中的“开-闭”原则。如果你想要有质的飞跃的话,光看一些 Java 语法方法的书是没有多大用处的,建议去学习一下:设计模式、面向对象设计原则等等之类属于思想层面的东西。