抽象类与接口的区别,该如何解决

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

------解决方案--------------------
抽象类,是定义一个类的模板,解决了不同类中定义相同功能的问题,但他一定要被其它类extends后才能使用;
接口是为了解决,JAVA的不能多继承而出现的,这样JAVA的功能就更强大了啊
------解决方案--------------------
呵呵,抽象类中除了有抽象的方法外,可以有一些方法的实现、。
------解决方案--------------------
抽象类仍然是个类,所以仍必须遵循Java单继承的规则。
而接口正好解决了Java的多继承。
也就是说,一个子类只能继承于一个抽象类,但却可以实现多个接口。
------解决方案--------------------
学到了
------解决方案--------------------
接口中的方法是纯抽象的,方法都没有实现,只有方法头,而抽象类则不然,而且如果一个类实现一个接口的话,只要这个接口中的一个方法没有实现,则这个类是抽象类!还有的见解见楼上!
------解决方案--------------------
抽象类的方法不一定都是抽象的,而接口中的方法全部都是抽象的,换一话说,接口也是抽象中的一种,只是他的特别之处在于全部都是抽象的(纯抽象).
------解决方案--------------------
包含抽象方法的类即为抽象类,当一个抽象类中所有的方法都是抽象时,我们就可以定义成接口。
在设计类时,如果有些方法我们能确定,而有些方法不能确定,这时候我们就可以把该类声明成抽象类。抽象类的应用场景非常多,例如模板方法模式就是抽象类的一个应用,JDK中的inputStream和outputStream也是抽象类的一个应用,这两个类定义了如何读写数据的方法,而没有定义从哪里去读,具体从哪里读由具体的实现子类确定。
我们在定义相互调用规则时,可以使用接口。面向接口进行编程的明显好处,就是能极大降低软件系统的相互耦合性,接口的定义者按照接口进行调用,而实现者去实现接口。
在JDK中存在许多针对于接口的编程,例如用于比较对象的Comparable接口就是一个典型案例,我们在自定义对象时,如果实现了该接口,那么我们把对象保存到treeset集合中时,treeset将针对接口调用对象的compareTo方法。

------解决方案--------------------
JAVA中提供的继承只能单继承,一个子类只能有一个父类
有的时候程序需要 继承多个类,这时候就需要用到接口
接口可以实现类的 多态,一个类可以有多个接口
这是个人见解!!
------解决方案--------------------
我对以上几位大侠的说法稍微有点不同意见。

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