C#知识|接口的使用

news/2024/9/25 18:39:02/
哈喽,你好啊,我是雷工!
今天继续学习软件接口的相关内容,以下为练习笔记。

01 抽象类与抽象方法

抽象方法必须放到抽象类中,但是一个抽象类是可以没有任何抽象方法的;

02 父类、子类与接口

父类一般只放共同的行为,对于部分子类的行为,不能全部放到父类中,因为后面扩展的时候这些会自动的延续到子类,所以我们可以把这部分抽象为接口。
谁具有这样的行为,谁实现接口,进行统一的管理;
即接口侧重的是行为的规范,继承侧重的是复用;

03 接口规定

3.1、接口命名必须以I开头;
3.2、接口的方法都是没有实现的方法;
3.3、接口的方法不需要写public,因为默认都是public,接口没有私有的(这点与Java不同);
3.4、接口既可以抽象方法,也可以抽象属性,关键字是interface;

04 接口的特点

接口具有强制性,一个类实现一个接口,就必须把接口所有的方法都实现,并且不能改变方法的签名;

05 面向细节编程与面向抽象编程

Panda panda = new Panda();
以前一般是这样编程,即针对细节具体编程;
针对细节编程,就是使用的这个对象是普通的对象,这个对象里有什么属性、方法,就能使用什么属性、方法;
与细节编程相对的是面向抽象编程,就是关注的是这个抽象的行为(抽象方法和接口),具体如何实现,无需关心;
针对细节编程和面向对象编程的不同:细节必须实现,如果没有实现,则无法提供给调用者;但是面向抽象编程则不同;
抽象编程只要将实现的行为提前规定好,这样调用者就可以使用了;
面向抽象编程目的:
①实现扩展;
②实现团队分别开发;

06 接口和抽象类的区别

①接口侧重的是功能的封装,抽象类侧重的是代码的复用,虽然两者都可以实现多态,但是在扩展中,若没有要继承的内容时,一般直接使用接口,即使有要继承的内容,通常把公共内容放到父类中,然后将需要多态的行为,放到接口中。
②接口更简洁,使用更方便,在框架设计中,抽象的都会变成接口,而不是使用抽象类。

07 多态的基本原则

依据的是里氏替换原则;

08 接口分类

①自定义接口,根据我们实际的项目开发,自己定义的接口;
②系统接口,也就是.NET平台已经封装好的,可以给我们直接应用的接口,例如IList<T>接口;

09 后记

以上是关于接口的练习笔记,
欢迎大家积极评论点赞转发,也可以在交流群内探讨。

http://www.ppmy.cn/news/1530409.html

相关文章

io多路复用:epoll水平触发(LT)和边沿触发(ET)的区别和优缺点

在进行ET模式的正式分析之前&#xff0c;我们来举个例子简单地了解下ET和LT: 假设我们通过fork函数创建了父子两个进程&#xff0c;并通过匿名管道来通信&#xff0c;在子进程中&#xff0c;我们一次向管道写入10个字符数据&#xff0c;为"aaaa\nbbbb\n";每隔5s写入…

CNN网络训练WISDM数据集:模型仿真及可视化分析

卷积神经网络&#xff08;CNN&#xff09;因其强大的特征提取能力和深度学习架构而备受推崇&#xff0c;CNN在处理图像数据时展现出的卓越性能&#xff0c;使其成为解决各种视觉识别任务的首选工具。WISDM数据集是一个广泛用于运动估计研究的基准数据集&#xff0c;它包含了多个…

Vue3 中组件传递 + css 变量的组合

文章目录 需求效果如下图所示代码逻辑代码参考 需求 开发一个箭头组件&#xff0c;根据父组件传递的 props 来修改 css 的颜色 效果如下图所示 代码逻辑 代码 父组件&#xff1a; <Arrow color"red" />子组件&#xff1a; <template><div class&…

【Git入门】使用 Git 进行项目管理:Word Count 程序开发与托管

在软件开发过程中&#xff0c;版本控制工具是不可或缺的。Git 作为一款强大的分布式版本控制工具&#xff0c;为开发者提供了高效的代码管理和协作方式。本博客将介绍如何下载安装 Git 版本管理工具&#xff0c;并使用 Git 和 GitHub 平台进行一个名为 Word Count 的项目开发与…

不在同一局域网怎么远程桌面?非局域网环境下,实现远程桌面访问的5个方法分享!

非局域网环境下&#xff0c;怎么远程桌面&#xff1f;还能做到吗&#xff1f; 在企业管理中&#xff0c;远程桌面访问已成为提高工作效率、实现跨地域协同工作的关键工具。 然而&#xff0c;当被控端与控制端不在同一局域网时&#xff0c;如何实现远程桌面连接成为了许多企业…

基于微信小程序的购物系统+php(lw+演示+源码+运行)

基于微信小程序的购物系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于微信小程序的购物系统的开发全过程。通过分析基于微信小程序的购物系统管理的不足&#xff0c;创建了一个计算机管理基于微信小…

Linux相关概念和重要知识点(6)(make、makefile、gdb)

1.make、makefile &#xff08;1&#xff09;什么是make、makefile&#xff1f; 在我们写完代码后&#xff0c;要编译运行&#xff0c;如果有多个.c文件就需要每次都自己用gcc -o来处理&#xff0c;这十分麻烦。当我们想要自定义多个文件的处理时&#xff0c;我们会浪费很多时…

Pytorchz学习---基于卷积神经网络的MINIST数据集训练

# 一般情况下&#xff0c;如果模型有可学习的参数&#xff0c;最好用nn.Module&#xff0c;其他情况用nn.function相对简单一些 import torch.nn.functional as F import torch loss_func F.cross_entropy def model(xb):return xb.mm(weights)bias# bs 64 # xb x_trains[0:…