抽象类与接口的区别

文章详细阐述了抽象类和接口在Java编程中的差异。抽象类用于抽象子类的共性,可包含非抽象方法和变量,不能实例化;接口则仅包含抽象方法和常量,强制实现类完全实现其所有方法。Java中,抽象类可有构造方法,接口不能,且接口的修饰符只能是public。

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

抽象类与接口的区别

2023.2.16

首先先看抽象类和接口的定义:

抽象类:用来抽取子类的通用特性,作为子类的模板,它不能被实例化,只能被用作为父类使用
接口:是抽象方法的集合,声明了一系列的方法操作,如果一个类实现了一个接口,那么它必须实现这个接口的所有抽象方法

从定义中可以看出来:

  1. 抽象类和抽象方法没有绝对的关系,即抽象类中不一定要有抽象方法,有抽象方法不一定就是抽象类
  2. 在抽象类中,抽象方法不能被修饰为private(在java中被private修饰的方法只能在类中被调用,且重写方法不能给予比被重写方法更高的权限,抽象类不能被实例化,定义在抽象类中的被private修饰的抽象方法就没有了意义)

基于抽象类以及接口的特性,可以得出结论:

抽象类接口
修饰符不能被private修饰只能被public修饰
构造方法可以有构造方法不能有构造方法
变量允许带有普通变量只能带有不可变常量
对比普通类与普通java类的区别就是不可被实例化和普通java类不是一个概念
子类或实现类抽象子类可不完全实现父类的抽象方法实现类必须全部实现接口的抽象方法
继承与实现单继承多实现
方法允许有普通方法必须都是抽象方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值