C#编程-实现重写

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实现重写

实现派生类中基类的成员称为重写。在C#中,可以重写方法、属性和索引器。
重写是多态性的一种形式,因为它使您能够创建具有相同名称和不同功能的不同代码块。


重写函数

在面向对象编程中,子类可以提供超类中已定义的专门版本的函数。这称为函数重写。

函数重写是通过向函数提供相同的名称、参数和返回类型实现的。子类中的实现替换或重写其超类中的实现。

调用的函数版本取决于用于调用该函数的对象。如果超类的对象用于调用方法,那么将执行该超类中定义的函数;如果子类的对象用于调用方法,那么将执行该子类中定义的函数。

通过对子类中定义的函数使用修饰符override可以重写函数。超类中定义的函数必须是抽象或虚拟才能被重写。

小问题:
说明下面的语句正确还是错误。
超类中定义的函数必须是抽象或虚拟才能被重写。
a.正确
b.错误
答案:a.正确


重写属性

类似于函数,属性也可被重写。通过在派生类中提供具有相同名称和返回类型的属性来实现属性重写。超类中定义的属性必须是抽象或虚拟才能被重写。

抽象属性

可以使用关键字abstract将类中的属性声明为抽象。抽象属性没有代码。超类中定义的属性的set和get访问器使用分号表示。它们没有自己的主体。在子类中,必须一并实现set和get访问器。如果抽象类只包括set访问器,那么可以在派生类中只实现set访问器。

思考以下代码:

	using System;
	abstract class Shape
	{
   
		protected int x;
		public abstract int X
		{
   
			get;
			set;
		}
	}
	class Sqyare:Shape
	{
   
		public override int X
		{
   
			get
			{
   
				return x;
			}
			set
			{
   
				x = value;  /* value is a variable present by default in the set accessor */
			}
		}
		public static

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/305103.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

模型创建与nn.Module

一、网络模型创建步骤 二、nn.Module 下面描述了在 PyTorch 中常见的一些属性和功能,用于存储和管理神经网络模型的参数、模块、缓冲属性和钩子函数。 parameters:用于存储和管理 nn.Parameter 类的属性。nn.Parameter 是一种特殊的张量,它被…

Python教程38:使用turtle画动态粒子爱心+文字爱心

Turtle库是Python语言中的一个标准库,它提供了一种有趣的方式来介绍编程和图形绘制的基本概念。Turtle库使用一个虚拟的“海龟”来绘制图形。你可以控制海龟的方向、速度和位置,通过向前移动、向左转或向右转等命令来绘制线条、圆弧多边形等图形。 -----…

《Shader开发实战》-笔记

一、初识游戏图形 1、什么是渲染? 渲染实际上就是创建图像的过程,在渲染过程中创建的图像被称为渲染或者帧,该图像(帧)以每秒多次在计算机屏幕上进行呈现,即帧率。 负责渲染图像(帧&#xff09…

深度解析分布式锁及实现方案

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

赠送葡萄酒:为别人选择合适的葡萄酒

葡萄酒可以在许多不同的场合成为很好的礼物,因为它可以用来庆祝许多不同的事情。当被邀请去别人家时,你可以带酒去吃饭。葡萄酒可以用来纪念婚礼、出生、毕业和各种纪念日,来自云仓酒庄品牌雷盛红酒分享这是一个非常合适的专业礼物。但是你怎…

LeetCode 2125. 银行中的激光束数量【数组,遍历】1280

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

基于共享储能电站的工业用户日前优化经济调度【复现】

文章提出一种基于共享储能电站的工业用户日前优化经济调度方法。首先提出共享储能电站的概念,分析其 商业运营模式。然后将共享储能电站应用到工业用户经济优化调度中,通过协调各用户使用共享储能电站进行充电和 放电的功率,实现用户群日运行…

数据湖存储解决方案之Iceberg

1.Iceberg是什么? Apache Iceberg 是由 Netflix 开发开源的,其于2018年11月16日进入 Apache 孵化器,是 Netflix 公司数据仓库基础。Apache Iceberg设计初衷是为了解决Hive离线数仓计算慢的问题,经过多年迭代已经发展成为构建数据…

【NextChat】手把手教您如何在群晖上部署chatgpt-next-web

文章目录 📖 介绍 📖🏡 环境 🏡📒 配置方法 📒📝 群晖部署📝 Vercel/Dokcer/其他环境部署⚓️ 相关链接 ⚓️📖 介绍 📖 chatgpt-next-web项目又叫NextChat,是一个支持一键免费部署你的私人GPT 的网页应用,支持 GPT3、 GPT4 & Gemini Pro 等模型,本…

STM32——高级定时器输出指定个数PWM波原理及实战

1.高级定时器简介(TIM8、TIM1) 相比于通用定时器特性: 1)重复计数器 2)死区时间带可编程的互补输出 3)断路输入,用于将定时器的输出信号置于用户可选的安全配置中 2.高级定时器框图 3.重复计数…

SSM(spring+springmvc+mybatis)整合

spring与SpringMvc的常用注解 一、spring常用注解: Component:实现bean的注入(不过获取bean需要用bean的类型来获取(即class文件)) controller、Service、Repository的作用等同于Component注解的作用&…

TS中的类

目录 ES6的类 类的概念 类的构成 类的创建 声明 构造函数 定义内容 创建实例 TS中的类 类声明 构造函数 属性和方法 实例化类 继承 访问修饰符 public private protected 成员访问修饰符的使用原则 访问器 只读成员与静态成员 readonly static 修饰符总…

remote-ssh如何离线下载历史版本

remote-ssh离线下载任意历史版本方法,简单有效 很多小伙伴都会遇到这样的问题,由于内网服务器中安装的vs code版本较低,比如1.62.0版本,官网发布的version history 只展示最新的五个版本,还是太高了,导致下…

TypeScript 和 jsdom 库创建爬虫程序示例

TypeScript 简介 TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,可以编译生成纯 JavaScript 代码。TypeScript 增加了可选的静态类型和针对对象的编程功能,使得开发更加大规模的应用容易。 jsdom 简介 jsdom 是一个…

VS中打开ui文件闪退

解决办法: 依次点击《扩展》-> 《Qt vs tools》-> 《options》-> 《Qt》-> 《general》 -> 《Qt Designer》 -> 《run in detached window》 -> true

用Java编写图书网站信息采集程序教程

目录 一、准备工作 二、分析目标网站结构 三、选择信息采集方式 四、安装Jsoup库 五、编写信息采集程序 六、注意事项 总结: 编写图书网站信息采集程序需要掌握HTML、CSS、JavaScript、Java等前端和后端技术。下面是一个简单的教程,介绍如何使用…

游戏开发中,你的游戏图片压缩格式使用ASTC了吗

文章目录 ASTC原理:使用要求 ASTC(Adaptive Scalable Texture Compression,自适应可伸缩纹理压缩)是一种高级的纹理压缩技术,由ARM公司开发并推广。它在图形处理领域中因其出色的压缩效率和灵活性而受到广泛关注。 AST…

上门洗衣洗鞋小程序多门店管理模式是怎么样的

做干洗店和洗鞋店的老板们很多都不止一个门店,多门店的管理模式下,去做一个上门洗衣洗鞋小程序,需要有哪些必要的功能才能让不同的门店管理起来不乱呢。首先需要先确定一下不同门店的管理都会面临哪些经营场景和需求。 第一,加盟店…

【前端素材】bootstrap4实现服装鞋饰电商平台Doron

一、需求分析 一个服装鞋饰电子商务页面是一个在线平台,用于展示和销售各种服装、鞋子和配饰产品。它通常具有以下功能: 产品展示:服装鞋饰电子商务页面会展示各种服装、鞋子和配饰产品的图片、描述和价格。这些产品可以按照不同的分类&#…

FreeRTOS学习总结(二)FreeRTOS任务创建和删除API函数

实现动态创建任务流程 任务控制块结构体成员介绍 typedef struct tskTaskControlBlock {volatile StackType_t * pxTopOfStack; /* 任务栈栈顶,必须为TCB第一个成员 */ListItem_t xStateListItem; /* 任务状态列表项 */ Li…