java中使用抽象类和接口的好处是什么。具体点谢谢了、。

如题所述

以前对接口和抽象类,总是模糊,不知道什么时候用接口,什么时候用抽象类。
通过查阅一些资料,加上一些自己的理解,现在整理如下:

接口和抽象类有很大的相似性,甚至可以相互替换,因此很多开发者在进行开发时对于接口和抽象类的选择显得比较随意。其实,他们是有区别的。

对于接口的作用,在一些小的项目上,很难看出其发挥的优势。这就使一些经常的做小项目的开发人员,做时间久了就感觉不到它有什么好的,有时候写起来还麻烦,干脆不用了。其实,在一些大项目上,接口的作用是发挥地相当的明显的。

比如:如果你开发业务逻辑代码,当你好不容易的实现了它全部的功能,突然用户需求要改,你在修改你代码的同时,调用你代码的其它人也会改,如果代码关联性强的话,会有很多人都要改动代码,这样一来二去,程序会变得相当的不稳定,而且可能还会出现更多的新Bug,所有人都可能会陷入混乱。
但如果使用接口的话,在你使用它之前,就要想好它要实现的全部功能(接口实际上就是将功能的封装)。确定下这个接口后,如果用户需求变了,你只要重新写它的实现类,而其它人只会调用你的接口,他不管你是怎么实现的,它只需要接口提供的功能。这样,很可能只需要把你的代码修改就可以了,其他人什么都不用做。
同时:这样做的话,使得开发人员能够分工明确,只要确定下来接口了,就可以同时进行开发,提高开发效率。
另外,使用接口还有使用方便,可读性强,结构清晰等优点。

当然,我说的这些也可能是浅层面的,在其他方面还有很多的好处。

抽象类:可以有抽象方法,也可以有方法的实现。抽象类不一定有抽象方法,而有抽象方法的类一定是抽象类。抽象类不能实例化。
接口:只有方法体的声明,没有方法实现。

一个类可以实现多个接口,但只能继承一个抽象类。

在项目上,我们一般的做法是:最上层为接口,中间层次为抽象类,往下就是我们的实现类。

为什么我们会在中间加上抽象类呢,就是为了提高代码的可重用性,你可以在抽象类里提炼出一些公用的已经实现的方法,那么底下那些实现类只要继承它也就继承了这些方法。

参考资料:http://hi.baidu.com/thblover/blog/item/7b4add3d8e5aa0ce9f3d6286.html

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-06-22
通俗点说 哈
比如说 有个座充
它可以充 诺基亚 可以充索爱 只要电池的型号一样
而你自己带的可能只可以给自己的手机充电。
那么这个 座充就可以看做是接口 它可以插不同的电池 只要规定一定的规格
。它不考虑你是哪个品牌的手机。
或者说 拿电脑的驱动来说。当你换了一个新的硬件 你就必须装驱动
每个硬件的 驱动都不一样 但是操作系统都可以操作他们 这样他们也是实现了接口 可以这么说把 呵呵呵

还有许多洋娃娃 他们可以换不同的衣服 你是不是更喜欢这种玩具呢

接口使程序更加灵活 机动性号 你喜欢一个可以拼接的玩具 而不是一个整的
数学中 拆分思想无处不在 同样 语言只是 数学思想的延续

有空可以去读读 API文档 去看看 是怎么分的层次 这样很有好处的本回答被提问者采纳
第2个回答  2010-11-04
这个问题比较抽象,不过俺给你举个例子,希望对你的理解可以起到微薄之力。
就举一个院长和病人的例子吧,院长就相当于一个接口啦,病人就是普通的类,那么抽象类是什么呢,抽象类就是医院下面的科长啦,比如:胃肠科,眼科等等。当病人去医院就诊,病人不太可能直接找院长治疗,而是去对应的科去挂号治疗。院长就会舒服多了,用程序表示呢,院长会有一个接口叫‘治疗’,科长会实现这个接口,所以科长也会有这个方法的,注意科长是抽象类,所以呢,科长只会继承和他相关的接口,比如财务的接口,科长同志就无需实现啦,这是抽象类的好处,嘿嘿。当然,院长不只一个接口,医院的所有接口,院长同志都应该有的,下面的科长(抽象类)分类继承就是啦,各继承各的,世界就美好了!

在java中,什么时候用抽象类,什么情况下用接口??各自有什么好处,以及两...
1 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口。2 接口里面的成员变量默认都是public static final类型的。必须被显示的初始化。3 接口里面的方法默认都是public abstract类型的。隐式声明。4 接口没有构造方法,不能被实例化。5 ...

java中为什么要用抽象类和接口
从这里可以看出,抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类,如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为abstract方法,此时这个类也就成为abs...

抽象类和接口的区别和相同点
可以包含常量:抽象类和接口都可以包含常量,这允许在多个相关类之间共享值。可以在运行时动态绑定:抽象类和接口中的方法可以在运行时动态绑定到实际的实现。以上就是抽象类和接口的主要区别和相同点。在设计软件系统时,需要根据具体需求选择使用抽象类还是接口。通常情况下,当需要一组特定的行为并且这些行...

Java中 什么情况下使用接口?什么情况下使用抽象类?各自的优势是...
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者...

JAVA抽象类和接口的区别,使用场景
抽象类可以拥有方法的实现,而接口只能拥有方法的声明。一个类只能有一个抽象的基类,但是可以有多个接口。语义上的区别(这个更有意义,也更难理解)这个与设计相关,合理使用并且区分抽象类和接口能让自己的设计更加灵活和健壮。抽象类代表一个类实体,只是这类实体无法被实例化。而接口则一般不能够代表...

为什么java要有那么多接口?有什么好处
1、重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。2、简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也...

java中抽象类的存在有什么意义?
java中抽象类更利于代码的维护和重用。抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。具体分析如下:1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更...

java中抽象类和接口的区别?
继承与实现 在Java中,每个类只能继承一个抽象类或接口。这是为了防止多重继承带来的复杂性。然而,一个类可以同时实现多个接口。这种特性使得接口在定义通用行为集合方面非常有用,而这些行为可以由多个不相关的类实现。这使得接口比抽象类更灵活。例如,一个图形用户界面应用程序可能涉及多个接口,而这些...

java中的抽象类和接口该怎么理解 ?定义上有什么区别?通常分别有什么作用...
public void method2(); \/\/接口中不能赋予方法的默认行为,即不能有方法的具体实现 } 简言之抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。从某种意义上说,接口是一种特殊形式的抽象类,在java语言中抽象类表示的是一种继承关系,一个...

java抽象类继承具体类有什么用
1、抽象类与接口紧密相关,它们不能示例化,并且常常部分实现或根本不实现。抽象类和接口之间的一个主要差别是:类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承。从抽象类派生的类仍可实现接口。2、具体应用时,可以在创建组件时使用抽象类,因为它们使您得以在某些方法中指定不变级...

相似回答