抽象类和接口的区别

1.首先抽象类也是类, 既可以有正常方法, 也可以有抽象方法, 然而接口相当于多个类的规范, 没有方法体, 里面所有的方法和属性都会被隐式定义为 public abstract, java中不允许被多继承, 但允许多实现

抽象类的特性 (abstract) :

抽象类不能实例化对象, 只能创建抽象类的子类, 然后由子类重写抽象类中的抽象方法(全都要重写, 不然还是抽象类)

抽象类因为要被重写, 所以不能是 private修饰, 同理, 里面的抽象方法也是, 同时也不能被 final和 static修饰

抽象类中可以有构造方法, 这可以供子类在创建对象时初始化父类成员变量
接口的特性 (interface) :

接口是一种引用类型, 但是不能直接实例化

接口中的每一种方法都是 public abstract, 变量是 public static final

实现接口的类如果没有实现接口中的每一种抽象方法, 就要被设置成抽象类

接口虽然不是类, 但是在编译完成后的字节码文件的后缀格式也是 .class

接口中不能有构造方法

  1. 抽象类就像是一个产品的半成品, 里面既可以有完整的方法, 也可以有抽象的方法, 接口就像是一个制定标准和规范
  1. 继承抽象类, 我们可以进行抽象方法的重写, 功能的扩展, 要是不满意父类功能也可以选择重写
  1. 实现接口, 我们要按照他给的规范从头制定一个完整的产品
相关推荐
浔川python社1 分钟前
C++ 实际应用系列(第六部分):并发系统的性能优化与工程实践(完)
开发语言·c++·性能优化
Dxy12393102165 分钟前
python如何做声音识别
开发语言·python
superlls15 分钟前
(场景题)Java 导出 Excel 的两种方式
java·开发语言·后端·excel
harmful_sheep23 分钟前
springMvc
java
一只小透明啊啊啊啊25 分钟前
Java电商项目中的概念: 高并发、分布式、高可用、微服务、海量数据处理
java·分布式·微服务
@LetsTGBot搜索引擎机器人1 小时前
Telegram 被封是什么原因?如何解决?(附 @letstgbot 搜索引擎重连技巧)
开发语言·python·搜索引擎·机器人·.net
沐欣工作室_lvyiyi3 小时前
基于Matlab的简易振动信号分析系统(论文+仿真)
开发语言·matlab·毕业设计·振动信号分析
2401_841495643 小时前
【数据结构】基于Prim算法的最小生成树
java·数据结构·c++·python·算法·最小生成树·prim
木井巳4 小时前
[Java数据结构和算法] HashMap 和 HashSet
java·数据结构·1024程序员节
祈祷苍天赐我java之术5 小时前
解析常见的限流算法
java·数据结构·算法