为了账号安全,请及时绑定邮箱和手机立即绑定

接口与抽象类问题

有了抽象类,为什么还要接口?两个具体区别

正在回答

2 回答

Java中类不允许多继承,接口可以实现多继承

0 回复 有任何疑惑可以回复我~

1、抽象类里面可以有非抽象方法,但接口里只能有抽象方法 

声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。

不能创建 abstract 类的实例,然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。

不能有抽像构造函数或抽像静态方法。abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。


2、接口(interface)是抽像类的变体。

在接口中,所有方法都是抽像的。

多继承性可通过实现这样的接口而获得。

接口中的所有方法都是抽像的,没有一个有程序体。

接口只可以定义 static final 成员变量。

接口的实现与抽象类相似,当类实现接口时,它需要实现(即将程序体给予)所有这种接口的方法。


1 回复 有任何疑惑可以回复我~
#1

竹墨残香烟花冷

太深奥了 毕竟我是理科生 理解能力稍微差些 可不可以 讲的通俗易懂些呢
2016-06-07 回复 有任何疑惑可以回复我~
#2

声声慢_1 回复 竹墨残香烟花冷

楼下米老头0的解释已经很通俗了,就是为了接口实现多继承
2016-07-05 回复 有任何疑惑可以回复我~
#3

声声慢_1 回复 竹墨残香烟花冷

因为一个类只能实现一次继承关系,而接口可以多继承
2016-07-05 回复 有任何疑惑可以回复我~
#4

声声慢_1 回复 竹墨残香烟花冷

抽象类是在接口和实体类之间的一个桥梁例如做一个接口叫做飞行FlyAnimalAction,里面定义一个方法叫做flying,再定义一个方法叫做eat,做一个类叫做蚊子实现接口,蚊子要实现flying方法,实现自己的eat方法,做一个类叫做苍蝇实现接口,苍蝇也要实现flying方法,实现自己的eat方法
2016-07-05 回复 有任何疑惑可以回复我~
#5

声声慢_1 回复 声声慢_1

你发现所有会飞的动物都要实现这个接口,很麻烦,不如,做一个抽象类FlyAnimal,然后实现上面的接口,在里面实现flying这个方法,因为大部分的飞行动作是一样的,而eat方法则继续写成抽象方法,因为大部分的动物吃东西是不一样的,下面你再写蚊子类就简单了,可以直接继承这个抽象类,然后实现自己的吃方法就行了
2016-07-05 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530696    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

接口与抽象类问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信