java中抽象类与接口的异同

本文对比了接口和抽象类的特点,介绍了它们的相似之处及不同之处。重点在于接口只能包含抽象方法,而抽象类可以包含具体实现的方法。此外,一个类可以实现多个接口,但只能继承一个抽象类。

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

接口和抽象类


• 接口和抽象类的异同

1、 接口和抽象类相似,它们都具有如下特征

• 接口和抽象类都不能被实例化。只能被其他类实现和继承。

• 接口和抽象类都可以包含抽象方法,实现接口和抽象类的类都必须实现这些抽象方法


2、接口和抽象类有如下不同 

• 抽象类与接口定义不同:抽象类abstract class ,接口  interface

• 接口里只能包含抽象方法,不包含已经实现的方法;抽象类则完全可以包含普通的方法。

• 接口里不能定义静态方法;抽象类可以定义静态方法

• 接口里只能定义静态常量属性,不能定义普通属性;抽象类里既可以定义普通属性,也可以定义静态常量

• 接口不包含构造函数;抽象类可以包含构造函数,抽象类里的构造函数并不是用于创建对象,而是让其子类调用这些构造函数来完成属于抽象类的初始化操作。

• 接口不包含初始化块,但抽象类可以包含初始化块

• 一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补java的单继承不足



总结:

1、普通类中有的东西,抽象类都包含,此外抽象类比普通类多了抽象方法。

2、接口中只包含抽象方法和静态常量属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值