当前位置: 首页 > news >正文

C#学习系列之虚方法和多态

C#学习系列之虚方法和多态

  • 啰嗦
  • 设计原则(六大类其中之一)
  • 基类的引用
    • 使用
  • 共性与差异
  • 虚方法和多态的武器
    • 使用
  • 其他
  • 总结


啰嗦

基础学习。


设计原则(六大类其中之一)

**依赖倒置原则:**依赖抽象类,不依赖具体类。(减少耦合)
抽象类形容为父类,而子类是父类的具体类。

基类的引用

派生类包含基类和派生类,用基类引用指向派生类。通过指向派生类的基类引用访问派生类中的基类部分。

使用

将Child child改成Parent child也是可以的,如果出现调用同名函数的话,调用就是调用基类中的函数,而不是派生类中的函数。两者根据实际使用而有所不同。

public class parent
{public string name;
}
public class child:parent//相当于child继承于parent
{
}
class program
{static void Main(string[] args){Parent child=new Child();//将Child child改成Parent child也是可以的child.name="lily";//拥有父类的基础}
}

共性与差异

共性:派生类都是基于基类进行派生的。那么多个由同一个基类做的派生类会有共同的特性。
差异:派生类与派生类之间会存在不同的差异。

虚方法和多态的武器

虚方法:使用virtual的方法。基类的虚方法可在派生类使用override重写。
多态:通过指向派生类的基类引用,调用虚函数,会根据引用所指向派生类的实际类型,调用派生类中的同名重写函数。

使用

dog和cat使用到了override进行重写,所以不会用到基类的虚方法,并且两者的speak也会有所不同。

class pet
{virtual public void speak();
}
class dog
{override public void speak();//重写基类的虚方法
}
class cat
{override public void speak();//重写基类的虚方法
}
pet.speak();//调用基类的
dog.speak();//调用派生类

其他

  • 重写虚方法必须具有相同的可访问性,且基类方法不能是private(派生就无法访问)
  • 不能重写static方法或非虚方法
  • 方法、属性、索引器、事件都可以声明为virtual或override

总结

学习记录。
https://www.imooc.com/video/14226

相关文章:

C#学习系列之虚方法和多态

C#学习系列之虚方法和多态 啰嗦设计原则(六大类其中之一)基类的引用使用 共性与差异虚方法和多态的武器使用 其他总结 啰嗦 基础学习。 设计原则(六大类其中之一) **依赖倒置原则:**依赖抽象类,不依赖具体…...

面试算法44:二叉树中每层的最大值

题目 输入一棵二叉树,请找出二叉树中每层的最大值。例如,输入图7.4中的二叉树,返回各层节点的最大值[3,4,9]。 分析:用一个队列实现二叉树的广度优先搜索 由于要找出二叉树中每层的最大值,因…...

JWT的头部、载荷和签名分别包含哪些信息?

JWT(JSON Web Token)由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。每个部分都是经过Base64编码的JSON字符串。 1:头部(Header): 头部通常包含两个信息:令牌类型(typ)和所用的加密算法(alg)。令牌类型(typ)指示该令牌类型为JWT。加密算法(…...

【烧火柴问题】奇思妙想火柴

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

C++数据结构算法篇Ⅰ

C数据结构算法篇Ⅰ 📟作者主页:慢热的陕西人 🌴专栏链接:C算法 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要内容讲解数据结构中的链表结构 文章目录 C数据…...

Python selenium获取元素信息

视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 主要text属性和三个方法get_attribute(),get_property(),get_dom_attribute() text属性获取元素的文本信息; get_attribute(),ge…...

测试Winsock的select

说明 实现了一个回显一行字符串的服务器:客户端发送一行字符串,一’\n’结尾,服务器接受完一行后就原封不动地发回给客户端。 windows下对select的能监控的Socket数量是有限制的,若超过,一种方案是再开一个线程。 #i…...

CentOS 搭建 Hadoop3 高可用集群

Hadoop FullyDistributed Mode 完全分布式 spark101spark102spark103192.168.171.101192.168.171.102192.168.171.103namenodenamenodejournalnodejournalnodejournalnodedatanodedatanodedatanodenodemanagernodemanagernodemanagerrecource managerrecource managerjob hist…...

ModuleNotFoundError: No module named ‘paddle.fluid.incubate.fleet‘

在使用rocketqa的时候可能会遇到下面的问题: 问题: 解决方法: 这完全是paddlepaddle的问题。 在rocketqa/utils/optimization.py出现下面的语句,这个时候直接把出错的注释掉就可以,因为它完全没有用到。(…...

【Java】Java中的引用类型

强引用(StrongReference) 通过new直接创建的对象,只要该对象还可以被其它对象使用或访问到,就不会被回收 软引用(SoftReference) 引用一个对象,该对象在系统内存溢出不足时,会自动…...

File类、方法递归

File:代表文本 IO流:读写数据 1、 File 类构建对象的方式是什么样的? File 的对象可以代表哪些东西? 注意 File 对象既可以代表文件、也可以代表文件夹。 ● File 封装的对象仅仅是一个路径名,这个路径可以是存在的&#xff0c…...

MySQL - 系统库之 sys

sys 系统库用于管理和监控MySQL服务器的性能和运行状态: 用途: 性能监控和分析:sys 系统库用于监控MySQL服务器的性能和资源利用情况。它提供了各种视图和函数,用于分析查询性能、资源利用、等待事件等方面的数据。性能调优&…...

GoLong的学习之路(十七)基础工具之Gin框架使用JWT(前后端分离)

文章目录 JWT安装JWT使用什么是Claims默认Claims自定义Claims生成JWT解析JWT 在gin框架中使用JWT获取Token渠道定义方法设置中间件注册路由 总结一下 JWT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式&a…...

【代码数据】2023粤港澳大湾区金融数学建模B题分享

基于中国特色估值体系的股票模型分析和投资策略 首先非常建议大家仔细的阅读这个题的题目介绍,还有附赠的就是那个附件里的那几篇材料,我觉得你把这些内容读透理解了,就可以完成大部分内容。然后对于题目里它主要第一部分给出了常用的估值模…...

大数据之LibrA数据库系统告警处理(ALM-12006 节点故障)

告警解释 Controller按30秒周期检测NodeAgent状态。当Controller连续三次未接收到某个NodeAgent的状态报告时,产生该告警。 当Controller可以正常接收时,告警恢复。 告警属性 告警ID 告警级别 可自动清除 12006 严重 是 告警参数 参数名称 参…...

poi兴趣点推荐数据集介绍

介绍 foursquare数据集包含2153471个用户,1143092个场所,1021970个签到,27098490个社交关系以及用户分配给场所的2809581评级,我们常用的是根据NYC和TKY都是从该数据集中抽取出来的。 下载地址:https://sites.google.…...

把两个4点的结构相加

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,训练集中只有5张图片,让A中有4个1,B全是0,排列组合,统计迭代次数并排序。 其中有3个结构 3差值结构 迭代次数 4差值结构 迭代次数 31 3-2 0 1 …...

windows内存取证-中等难度-下篇

上文我们对第一台Target机器进行内存取证,今天我们继续往下学习,内存镜像请从上篇获取,这里不再进行赘述​ Gideon 攻击者访问了“Gideon”,他们向AllSafeCyberSec域控制器窃取文件,他们使用的密码是什么? 攻击者执…...

代码随想录算法训练营第7天|454 四数相加II 383. 赎金信 15.三数之和 18 四数之和

JAVA代码编写 454. 四数相加 II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a;…...

负载均衡深度解析:算法、策略与Nginx实践

引言 如今&#xff0c;网站和应用服务面临着巨大的访问流量&#xff0c;如何高效、稳定地处理这些流量成为了一个亟待解决的问题。负载均衡技术因此应运而生&#xff0c;它通过将流量合理分配到多个服务器上&#xff0c;不仅优化了资源的利用率&#xff0c;还大大提升了系统的…...

解锁3大网页设计黑科技:从像素到原型的无缝转换

解锁3大网页设计黑科技&#xff1a;从像素到原型的无缝转换 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 作为设计师&#xff0c;你是否曾为获取网页设计灵感而频繁截图&#x…...

RMSNorm:深度学习归一化技术的革新与实践

1. 从LayerNorm到RMSNorm&#xff1a;归一化技术的进化之路 第一次在Transformer模型里看到RMSNorm这个名词时&#xff0c;我正对着训练日志里暴涨的GPU内存使用率发愁。作为LayerNorm的"轻量版"替代品&#xff0c;RMSNorm用一行数学公式就解决了困扰我多时的显存问题…...

思源宋体CN:零成本打造专业中文排版的7个实用技巧

思源宋体CN&#xff1a;零成本打造专业中文排版的7个实用技巧 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业字体授权费发愁吗&#xff1f;想找一款既专业又免费的中文字体…...

rabbitmq新手福音,快马ai生成带详解注释的入门代码,轻松理解消息队列

RabbitMQ新手入门&#xff1a;从零开始理解消息队列 最近在学习消息队列技术&#xff0c;发现RabbitMQ作为最流行的开源消息代理之一&#xff0c;对于新手来说概念确实有点抽象。不过通过InsCode(快马)平台的帮助&#xff0c;我很快就能上手实践了。下面分享我的学习过程&…...

FLUX.1-dev像素生成器应用场景:复古计算器UI、像素风仪表盘可视化设计

FLUX.1-dev像素生成器应用场景&#xff1a;复古计算器UI、像素风仪表盘可视化设计 1. 像素艺术生成的新纪元 像素幻梦&#xff08;Pixel Dream Workshop&#xff09;是基于FLUX.1-dev扩散模型构建的专业像素艺术生成工具。与传统像素画工具不同&#xff0c;它采用16-bit现代明…...

B站成分检测器深度解析:5大革新特性重塑评论区交互体验

B站成分检测器深度解析&#xff1a;5大革新特性重塑评论区交互体验 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分油猴脚本&#xff0c;主要为原神玩家识别 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-comment-checker 在B站的海量评论互…...

微信QQ防撤回终极方案:3分钟搞定消息永久保存

微信QQ防撤回终极方案&#xff1a;3分钟搞定消息永久保存 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/GitHub…...

实战指南:基于快马平台开发在线教育vc16188视频交互系统

实战指南&#xff1a;基于快马平台开发在线教育vc16188视频交互系统 最近在做一个在线教育项目&#xff0c;需要实现视频课程的智能分段和交互功能。经过一番摸索&#xff0c;发现用InsCode(快马)平台可以快速搭建这样一个系统。下面分享下我的实战经验。 系统架构设计 前端部…...

UE6.5 C++27调试私密工作流(EPIC内部培训文档节选):从PDB/DSYM生成到Live Reload调试延迟压至11ms

第一章&#xff1a;UE6.5 C27调试工作流演进与核心挑战Unreal Engine 6.5 首次原生支持 C27 标准子集&#xff08;以 Clang 18 / MSVC 19.39 为后端&#xff09;&#xff0c;其调试工作流已从传统符号断点驱动&#xff0c;转向基于语义感知的实时表达式求值与协程上下文追踪。这…...

金融C++内存池测试必须绕开的7个反模式,92%的量化团队仍在踩坑!

第一章&#xff1a;金融C内存池测试的底层逻辑与行业特殊性金融系统对低延迟、高确定性及零内存碎片的严苛要求&#xff0c;使内存池&#xff08;Memory Pool&#xff09;成为高频交易、做市引擎与风控模块中不可或缺的基础设施。与通用堆分配器不同&#xff0c;金融C内存池的设…...