接口和抽象的使用场景

简介: 接口和抽象的使用场景

接口和抽象的使用场景


抽象和接口的区别


总的来说,是抽象是为了代码复用,接口是为了解耦。


抽象


  1. 抽象类不允许被实例化,只能被基础,也就是说,不能 new 一个抽象类
  2. 抽象类可以包含方法和属性,方法可以包含实现,也可以不实现。不实现的方法叫做抽象方法
  3. 子类继承抽象,必须实现抽象类中的方法。


接口


  1. 接口不能包含属性
  2. 接口只能声明方法,方法不能包含代码实现
  3. 类实现接口的时候,必须实现接口中声明的所有方法。

抽象类说明的是 is-a 的关系,接口表示的是一种 Has-a 的关系。


抽象类和接口能解决什么问题?


  • 抽象类是通过集成实现代码复用的目的。是一种 is-a 的关系,解决的是代码复用的问题。
  • 接口仅仅是对方法的抽象,是一种 has-a 的关系,表示的是一组行为特性,是为了解决解耦的问题。隔离接口和具体实现,提高代码的扩展性。


如何决定改用抽象类还是接口?


  • 如果我们要表示一种 is-a 的关系,并且为了解决代码复用的问题,选择使用抽象类。
  • 如果我们要表示一种 has-a 的关系,并且是为了解决抽象而不是代码复用,可以选择使用接口。
相关文章
|
7月前
|
JavaScript API
接口封装如何实现?
接口封装如何实现?
|
15天前
|
程序员 C语言 C++
【C++语言】继承:类特性的扩展,重要的类复用!
【C++语言】继承:类特性的扩展,重要的类复用!
|
1月前
|
安全 前端开发 NoSQL
如果让你设计一个接口,你会考虑哪些问题?
接口设计需关注参数校验、扩展性、幂等性、日志、线程池隔离、异常重试、异步处理、查询优化、限流、安全性、锁粒度和避免长事务。入参与返回值校验确保数据正确性;考虑接口扩展性以适应不同业务需求;幂等设计防止重复操作;关键接口打印日志辅助问题排查;核心接口使用线程池隔离确保稳定性;异常处理中可采用重试机制,注意超时控制;适合异步的场景如用户注册后的通知;并行查询提升性能;限流保护接口,防止过载;配置黑白名单保障安全;适当控制锁粒度提高并发性能;避免长事务影响系统响应。
|
1月前
|
Java 调度
抽象,封装
抽象,封装
18 1
|
1月前
|
JSON 数据格式
如何创建接口,设计过接口
项目遵循Restful规范设计接口,请求路径基于资源命名,如查询用GET,新增用POST,修改用PUT,删除用DELETE。GET参数通过问号或路径传递,POST/PUT用JSON。统一的接口规范规定:返回数据多时,用VO过滤或整合数据。
18 0
|
7月前
|
程序员 C++
论接口的封装能力
论接口的封装能力
30 0
|
9月前
|
Java
接口特性
接口特性
65 1
|
11月前
|
索引
接口和类有什么异同
接口和类有什么异同
|
11月前
|
C# 索引
C#中接口和类有什么异同
C#中接口和类有什么异同