刘铁猛C#入门 027 抽象和开闭原则

什么是接口和抽象类

接口和抽象类都是"软件工程产物"

抽象类

具体类→抽象类>接口:越来越抽象,内部实现的东西越来越

抽象类是末完全实现逻辑的类(可以有字段和非public成员,它们代表了"具体逻辑")

抽象类为复用而生:专门作为基类来使用,也具有解功能

封装确定的,开放不确定的,推迟到合适的子类中去实现

抽象类里面不一定是抽象方法,抽象方法一定在抽象类

接口

接口是完全未实现逻辑的"类"("纯类",只有函数成员;成员全部public abstract)

接口为解耦而生:"高内聚,低耦合",方便单元测试

接口是一个"协约",早已为工业生产所熟知(有分工必有协作,有协作必有协约)

它们都不能实例化,只能用来声明变量、引用具体类(concrete class)的实例

相关推荐
得闲喝茶几秒前
JavaScript在数据处理的应用
开发语言·前端·javascript·经验分享·笔记
嵌入式×边缘AI:打怪升级日志几秒前
转换模块(十二):实现 RGB 转 RGB + 项目整合与上机实验
开发语言·ios·swift
研究点啥好呢4 分钟前
凯捷 自动化测试(Java+Selenium)面试题精选:10道高频考题+答案解析
java·开发语言·python·selenium·测试工具·求职招聘
ghie90909 分钟前
基于遗传算法的配电网重构
开发语言·重构
SilentSamsara11 分钟前
生成器进阶:`yield from`、协程历史与双向通信
开发语言·python·青少年编程·pycharm
kyle~15 分钟前
ROS2---消息过滤
开发语言·c++·机器人·ros2
xieliyu.15 分钟前
Java手搓二叉树:基础遍历与核心操作全解析
java·开发语言·数据结构·学习
雪度娃娃31 分钟前
C++异步日志系统
开发语言·c++
xyq202439 分钟前
SVN 提交操作详解
开发语言
Halo_tjn1 小时前
基于异常处理机制 相关知识点
java·开发语言·算法