java抽象类和接口的区别

 我来答
妥当且坦率的才俊k
推荐于2016-02-28 · TA获得超过3825个赞
知道小有建树答主
回答量:1008
采纳率:80%
帮助的人:956万
展开全部

  •     使用接口的目的:接口更强调的是规范,是应用程序之间通信的窗口,而抽象类更强调是模版设计,因为接口到抽象类已经实现了部分功能

  •     使用接口的好处:实现了规范和具体实现的分离,有效的解决了代码之间的松耦合,有利于后期的维护和功能的拓展

  •     使用抽象类的好处:抽象类体现的就是一种模版式的设计,抽象类作为多个子类的通用模版,子类在抽象类的基础上进行拓展、改造,但子类总体上会大致保留抽象类的行为方式

  •     接口和抽象类的相同点:

    1). 都不能进行实例化,用于被其他类实现和继承

    2). 都包含抽象方法,实现接口或继承抽象类的普通子类必须实现这些抽象方法

  •     接口和抽象类的不同点:

    1). 接口里只能包含抽象方法,不可以包含普通的方法,而抽象类可以包含普通方法

    2). 接口里不可以包含构造方法,而抽象类里可以包含构造方法

    3). 接口里不能定义静态方法,而抽象类里可以定义静态方法

    4). 接口里声明的变量默认是 public static final 修饰的,而抽象类里可以包含普通的变量

    5). 接口里不可以有初始化块,而抽象类可以有初始化块

    6). 一个类能实现多个接口,而一个类只能最多有一个直接父类

302652034_bai
2014-10-26 · TA获得超过4145个赞
知道大有可为答主
回答量:2206
采纳率:66%
帮助的人:1533万
展开全部
简单的说,接口只是一种规范。
定义了方法的规范的集合,其中的方法全部都是抽象的。

而抽象类,可以有自己的成员变量,方法可以是抽象的,也可以是非抽象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wgp701
2014-10-26 · TA获得超过380个赞
知道小有建树答主
回答量:477
采纳率:100%
帮助的人:232万
展开全部
抽象类里可以有构造方法,而接口不能有构造方法。
抽象类里可以有普通的成员变量,接口中不能有普通的成员变量,只能是常量。
抽象类里可以包含非抽象的普通方法,接口中所有的方法必须是抽象的,不能有普通的方法。
抽象类里的抽象方法的访问修饰符可以使public,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
抽象类里可以包含静态方法,但接口内不能包含静态方法。
抽象类和接口都可以包含静态的成员变量,抽象类中的静态成员变量的访问类型可以是任意,但接口中定义的变量只能是public static 类型,并且默认为public static类型。
一个类可以实现多个接口,但是只能继承一个抽象类

接口更多的是在系统框架设计方法发挥作用,主要定义模块之间的通信,而抽象类在代码实现方面发挥作用,可以实现代码的重用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式