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

什么是接口和抽象类

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

抽象类

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

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

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

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

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

接口

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

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

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

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

相关推荐
辜月廿七1 分钟前
C#字符串相关知识
c#
lly2024061 分钟前
jQuery AJAX 简介
开发语言
盼哥PyAI实验室3 分钟前
Python多线程实战:12306抢票系统的并发处理优化
java·开发语言·python
好评1245 分钟前
【C++】继承与多态:从语法到底层原理
开发语言·面向对象·类与对象
历程里程碑6 分钟前
C++ 8:list容器详解与实战指南
c语言·开发语言·数据库·c++·windows·笔记·list
UpgradeLink7 分钟前
Electron项目使用electron-updater与UpgradeLink接入参考
开发语言·前端·javascript·笔记·electron·用户运营
小尧嵌入式11 分钟前
C++11线程库的使用(上)
c语言·开发语言·c++·qt·算法
m0_6161884916 分钟前
JS文件批量下载并打包成ZIP的功能
开发语言·javascript·ecmascript
蓝色汪洋20 分钟前
luogu填坑
开发语言·c++·算法
咖啡の猫20 分钟前
Python列表推导式
开发语言·python