请教各位高手,我现在是一个JAVA的初学者,对抽象类与接口之间的关系不清楚,请帮满,谢谢!!

解决方案 »

  1.   

    抽象类,是定义一个类的模板,解决了不同类中定义相同功能的问题,但他一定要被其它类extends后才能使用; 
    接口是为了解决,JAVA的不能多继承而出现的,这样JAVA的功能就更强大了啊
      

  2.   

    抽象类仍然是个类,所以仍必须遵循Java单继承的规则。
    而接口正好解决了Java的多继承。
    也就是说,一个子类只能继承于一个抽象类,但却可以实现多个接口。
      

  3.   

    包含抽象方法的类即为抽象类,当一个抽象类中所有的方法都是抽象时,我们就可以定义成接口。
    在设计类时,如果有些方法我们能确定,而有些方法不能确定,这时候我们就可以把该类声明成抽象类。抽象类的应用场景非常多,例如模板方法模式就是抽象类的一个应用,JDK中的inputStream和outputStream也是抽象类的一个应用,这两个类定义了如何读写数据的方法,而没有定义从哪里去读,具体从哪里读由具体的实现子类确定。
    我们在定义相互调用规则时,可以使用接口。面向接口进行编程的明显好处,就是能极大降低软件系统的相互耦合性,接口的定义者按照接口进行调用,而实现者去实现接口。
    在JDK中存在许多针对于接口的编程,例如用于比较对象的Comparable接口就是一个典型案例,我们在自定义对象时,如果实现了该接口,那么我们把对象保存到treeset集合中时,treeset将针对接口调用对象的compareTo方法。
      

  4.   

    JAVA中提供的继承只能单继承,一个子类只能有一个父类
    有的时候程序需要  继承多个类,这时候就需要用到接口
    接口可以实现类的 多态,一个类可以有多个接口
    这是个人见解!!
      

  5.   

    我对以上几位大侠的说法稍微有点不同意见。  虽然接口可以让JAVA实现C++那样的多继承,但接口的作用并不能仅仅局限于此。关于这些,在CORE JAVA(JAVA核心技术卷一)第五章中写的很明白。
      JAVA设计者的初衷是,一个类实现了某个接口,实际上就是告诉其他类,我可以提供某种服务。“接口”在这里指类与类之间进行沟通的渠道,说白了呢,就是public的方法。像上面一位仁兄说的,很多类实现了Comparable接口。这实际上就是告诉别的类,我产生的对象是可比较的,也就是说一个集合中的若干个此类的对象就是可排序的。
      而抽象类我就不多说啦。大家都说的很明白。
      另外,JAVA的设计者是推荐大家多用接口少用抽象类的。