请教各位高手,我现在是一个JAVA的初学者,对抽象类与接口之间的关系不清楚,请帮满,谢谢!!
解决方案 »
- 几个程序题目,给点思路或直接写个程序给我看看好吗。谢谢!坐等
- 初学java gui,问个有关Component的问题
- 看看这个有什么问题!!!!
- 高分求各种工具的配置和整合问题!!!方便初学者,各位高手不吝赐教!
- eclipse和netbeans都开源,它们各自有什么优缺点?
- java 字符数组问题
- Connetion reset by peer JVM_recv in socket input stream read
- NetGuardian??哪为兄弟有啊,给我一份copy~~~~~~~~~~~~
- 为什么我的JBUILDER5在WIN2000下不能运行?
- java怎样连接access数据库
- JavaMail乱码问题
- 关于JAVA的Path问题
接口是为了解决,JAVA的不能多继承而出现的,这样JAVA的功能就更强大了啊
而接口正好解决了Java的多继承。
也就是说,一个子类只能继承于一个抽象类,但却可以实现多个接口。
在设计类时,如果有些方法我们能确定,而有些方法不能确定,这时候我们就可以把该类声明成抽象类。抽象类的应用场景非常多,例如模板方法模式就是抽象类的一个应用,JDK中的inputStream和outputStream也是抽象类的一个应用,这两个类定义了如何读写数据的方法,而没有定义从哪里去读,具体从哪里读由具体的实现子类确定。
我们在定义相互调用规则时,可以使用接口。面向接口进行编程的明显好处,就是能极大降低软件系统的相互耦合性,接口的定义者按照接口进行调用,而实现者去实现接口。
在JDK中存在许多针对于接口的编程,例如用于比较对象的Comparable接口就是一个典型案例,我们在自定义对象时,如果实现了该接口,那么我们把对象保存到treeset集合中时,treeset将针对接口调用对象的compareTo方法。
有的时候程序需要 继承多个类,这时候就需要用到接口
接口可以实现类的 多态,一个类可以有多个接口
这是个人见解!!
JAVA设计者的初衷是,一个类实现了某个接口,实际上就是告诉其他类,我可以提供某种服务。“接口”在这里指类与类之间进行沟通的渠道,说白了呢,就是public的方法。像上面一位仁兄说的,很多类实现了Comparable接口。这实际上就是告诉别的类,我产生的对象是可比较的,也就是说一个集合中的若干个此类的对象就是可排序的。
而抽象类我就不多说啦。大家都说的很明白。
另外,JAVA的设计者是推荐大家多用接口少用抽象类的。