百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

C#知识|继承与多态

xsobi 2025-01-03 19:38 1 浏览

哈喽,你好啊,我是雷工

01 Protected

Protected关键字表示这个属性只能给“子类”使用,即只能在子类内部使用,不能通过子类对象去使用;

02 父类定义

父类

{

//公共属性

//公共方法

//私有方法(只能父类自己使用的方法)

//受保护的属性、方法(只能子类内部使用)

//父类还有一个重要的作用:父类可以提出一个未完成的方法,然后让子类去实现,也就是抽象方法

}

03 抽象方法

关键词:abstract

就是父类规范一个行为要求,具体实现由子类完成(具有强制性);

注意:

抽象方法必须放到抽象类中,但是一个抽象类,可以不包含任何抽象方法;

04 虚方法

关键词:virtual

即父类可以对这个方法有实现,但是子类也可以重写该方法;

05 子类定义

子类继承的父类如果有抽象方法,则子类必须重写抽象方法,除非子类也是抽象类。

注意:

①:重写父类的抽象方法,必须使用overrid关键字,而且是强制的;

②:重写父类的虚方法,不是强制的;

06 虚方法的使用

在子类中,子类可以直接完全使用虚方法的内容,也可以完全不使用虚方法的内容,还可以同时继续使用虚方法的内容;

注意:

①:抽象方法是不可能被调用的,只有子类重写的方法被调用。

②:父类虚方法是否被调用,取决于子类是否重写和是否调用;

07 多态

多态是面向对象编程语言的特性;

特点是:当我们调用者使用多态机制的时候,可以不关心具体的实现;

例如想调用一种行为,但是这种行为可能有多重表现,而具体如何表现,编写程序时是无法知晓的,只有程序运行的时候才能确定,这个行为是虚拟机本身特有的;

多态就是一种灵活的扩展的体现;

多态本质:一种类型,多种行为;

多态实现方法:

①:父类类型做方法参数类型(里氏替换原则的典型应用),会根据传入的子类类型去调用对应重写的方法;

②:父类类型作为方法返回值类型,实际返回的是子类对象;

通过多态的应用,面向抽象编程,可以让程序的扩展性大大增强;

特别注意:

多态的行为,只能限于父类中的抽象方法或虚方法;

多态的实现:

父类定义抽象方法或虚方法,不同子类分别重写抽象方法或虚方法即可。

08 后记

通过学习先对继承和多态有个认识,当时或许还比较迷糊,但是没关系,随着学习案例的应用,在某一天再回想起来这节的内容会有豁然开朗的感觉;

学习的过程很多都是要经历这样的过程,初始-了解-迷糊-应用-豁然开朗-融会贯通;

大家可以在留言区留下自己学习时的感受,更多相关话题也可以在交流群内畅所欲言。

相关推荐

Asp.Net快速开发平台(敏捷开发框架)

前言:敏捷开发框架的名称由来呢?我希望开发项目可以结构化的,轻量级的,就像敏捷开发团队一样的高效快速,通过它可以快速开发一个项目。1:什么是敏捷开发框架?答:敏捷开发框架是一款Asp.Net轻量级智能...

Gradio.NET:简化.NET Web应用开发的新利器

...

.NET 8 实现通用权限开发框架

...

干货来了!推荐10个用于C#.NET开发的基本调试工具

今天给各位网友分享10个用于C#.NET开发的基本调试工具,掌握了这10个工具,大家就可以轻松玩转C#.NET开发与调试。话不多说,直接上干活!!1、VisualStudio...

「Net Core开发」webapi 开发

之前的文章:【NetCore开发】C#开发跨平台程序...

.NET5.0和Quartz.NET开发的极简任务调度平台

任务调度是让系统自动化完成特定的任务,在预约的时间点执行任务的过程。任务调度在不同业务需求情况也不一样,有些可能是有着上千上万个任务,需要统一管理;有些可能是为了方便异常进行提醒、监控。项目简介...

3个基于.Net开发的、开源远程管理工具

我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。盘点3个基于.Net开发的、开源Windows远程管理工具。...

.NET 9 中的新增功能:每个开发人员都应该知道的基本更新

...

跨平台开发的未来:如何在 .NET 6 上构建高效的跨平台应用

跨平台开发是当今软件开发领域的一大热点。开发者一直在寻找能够让他们编写一次代码并部署到多个操作系统(如Windows、Linux和macOS)上的工具和框架。传统的开发方式需要针对每个操作系统编...

.Net开发框架最终版将与Win10同步问世

对许多用户而言,7月29日最受关注的事件是Windows10的发布。但事实上,除了Windows10外这一日微软还会带来更多的亮点。届时微软还将发布针对Windows通用应用程序平台的(UWP)....

微软推出 .NET Aspire云端框架:可改进分布式应用开发流程

IT之家5月24日消息,据微软官方新闻稿,微软近日推出一款能够简化.NET云端开发的.NETAspire开发框架,该框架主要包含工具、模板和NuGet包,允许用户“更容易地”创建分布...

VOL.NET6开发MES系统第二篇——基础数据

大家好,我是李工。系统框架我们已经运行起来了,今天我们正式开始搭建MES系统。MES系统主要实现四大模块:基础数据、生产管理、生产数据、操作记录;今天我们主要演示一个单表的增删改查以及权限控制,我们不...

.NET混合开发解决方案1 WebView2简介

在我的博客《...

VOL.NET6开发MES系统第一篇——搭建程序

大家好,我是李工,接下来我将用VOL.NET6搭建一套MES系统;有兴趣的小伙伴们可以一起学习。一、下载源码VOL...

盘点5个基于SkiaSharp开发的.Net开源图形项目

...