JAVA 抽象类与接口的区别(重点)(三)

本文详细对比了Java中的接口与抽象类,包括它们的特性、使用场景和区别,如接口支持多实现、抽象方法的定义等,并指导了何时选择接口和抽象类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.区别

 接口

 a 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口。

b 接口里面的成员变量默认都是public static final类型的。必须被显示的初始化。

c 接口里面的方法默认都是public abstract类型的。隐式声明。

d 接口没有构造方法,不能被实例化。

e 接口不能实现另一个接口,但可以继承多个接口。

f 类如果实现了一个接口,那么必须实现接口里面的所有抽象方法,否则类要被定义为抽象类

抽象类

a 如果将一个类声明为abstract,此类不能生成对象,只能被继承使用。 

b 抽象方法必须存在于抽象类中。

c 抽象类中可以有一般的变量和一般的方法。

d 子类继承抽象类必须实现其中抽象方法,除非子类为抽象类。 
   private void print(){};此语句表示方法的空实现。 
   abstract void print(); 此语句表示方法的抽象,无实现

区别:按照类从上到下 存在的内容进行比对

区别类目抽象类接口
abstractinterface
集成抽象类的关键字extends实现接口的关键字implements
集成抽象类只能单继承实现接口可以多实现
抽象类存在构造方法接口中不存在构造方法
抽象类中存在成员变量接口中只可以有常量
抽象类可以有成员方法接口中只可以有抽象方法
抽象类增加方法可以不影响子类接口中增加方法通常影响子类
jdk1.8中规定接口中可以出现非抽象方法,但是必须使用default关键字进行修饰

2.使用场景

a 优先定义接口 
b 如果有多个接口实现有公用的部分,则使用抽象类,然后集成它  
c 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。 
d 如果许多类实现了某个接口,那么每个都要用代码实现那些方法 
e 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mhi()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值