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

什么是接口和抽象类

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

抽象类

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

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

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

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

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

接口

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

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

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

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

相关推荐
HMBBLOVEPDX18 小时前
C++(静态函数)
开发语言·c++
张晓~1833994812118 小时前
短视频矩阵源码-视频剪辑+AI智能体开发接入技术分享
c语言·c++·人工智能·矩阵·c#·php·音视频
dpxiaolong18 小时前
RK3588 Android12默认移除导航栏
开发语言·python
Pocker_Spades_A19 小时前
Python快速入门专业版(二十九):函数返回值:多返回值、None与函数嵌套调用
服务器·开发语言·python
良木林19 小时前
浅谈原型。
开发语言·javascript·原型模式
烈风19 小时前
004 Rust控制台打印输出
开发语言·后端·rust
一枝小雨20 小时前
【C++】list 容器操作
开发语言·c++·笔记·list·学习笔记
HMBBLOVEPDX20 小时前
C++(继承和多态)
开发语言·c++·继承和多态
yvya_20 小时前
JVM介绍
java·开发语言·jvm
almighty2720 小时前
C# DataGridView表头自定义设置全攻略
数据库·c#·winform·datagridview·自定义表头