C#中的抽象类(abstract)

C#中的抽象类(abstract)。

1:抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法

 

2:抽象类不能被实例化

 

3:抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类

 

4:具体派生类必须覆盖基类的抽象方法

 

5:抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们。

 

6:抽象类中的非抽象方法,如果该方法是静态,直接通过类调用就好,如果不是静态的,则需要通过继承这个抽象类的子类实例化的对象来调用。

 

7:抽象类中包含属性、虚方法、普通方法、抽象方法、构造方法、普通成员变量、静态成员变量

 

8:抽象类的成员可以使用公有或其他修饰符,接口中成员是隐式公有的,不需要修饰;

 

9:抽象类是概念的抽象,接口注重行为,抽象类不支持多重继承,而一个类可以实现多个接口。

下边是实例:

using System;namespace @abstract
{class Program{static void Main(string[] args){// 实例化对象son son = new son();// 调用重写后的抽象方法son.getClass();// 调用抽象类中非抽象方法son.GetResult();// 调用抽象类中的静态非抽象方法AbsClass.GetUser();Console.ReadLine();}}/// <summary>/// 子类,继承抽象类/// </summary>public class son : AbsClass{public override void getClass(){Console.WriteLine("我继承了AbsClass抽象类,并实现了其中的方法");}}/// <summary>/// 声明一个抽象类/// </summary>public abstract class AbsClass{/// <summary>/// 非抽象的字段/// </summary>public int number;/// <summary>/// 构造函数/// </summary>public AbsClass(){number = 10;}/// <summary>/// 非抽象方法/// </summary>public void GetResult(){Console.WriteLine("非抽象方法:非抽象变量值为"+ number);}/// <summary>/// 非抽象静态方法/// </summary>public static void GetUser(){Console.WriteLine("我是非抽象静态方法");}/// <summary>/// 抽象方法/// </summary>public abstract void getClass();}}

有好的建议,请在下方输入你的评论。

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV中reshape()函数详解-改变矩阵的通道数,对矩阵元素进行序列化

文章目录 1、函数原型2、示例3、结论&#xff1a; OpenCV中reshape()函数详解-改变矩阵的通道数&#xff0c;对矩阵元素进行序列化 在opencv中reshape函数&#xff0c;既可以改变矩阵的通道数&#xff0c;又可以对矩阵元素进行序列化 1、函数原型 Mat Mat::reshape(int cn, in…

SQLServer2022安装(Windows),已验证

二、安装可视化工具SSMS 接下来安装可视化工具SSMS&#xff0c;现在新版本默认都是没有可视化界面&#xff0c;需要单独安装 &#xff08;1&#xff09;地址&#xff1a;下载 SQL Server Management Studio (SSMS) - SQL Server Management Studio (SSMS) | Microsoft Learn…

集合面试题--二叉树,红黑树,散列表

目录 二叉树 二叉搜索树 时间复杂度 总结 红黑树 红黑树特质 复杂度 总结 散列表 散列函数 哈希冲突 散列冲突-链表法&#xff08;拉链&#xff09; 时间复杂度 ​总结 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是…

jenkins发布使用邮件添加审批

首先安装好Email Extension Plugin插件并在 system下配置好邮件 然后配置流水线需要的参数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/418fc89bfa89429783a1eb37d3e4ee26.png#pic_center pipeline如下&#xff1a; def skipRemainingStages false //是否跳过生…

pdf转excel表格怎么做?分享效率超高的方法

PDF是我们在办公中常用的格式&#xff0c;它方便我们保存、查阅和传输文件。有时候我们可能会遇到需要将大量内容的PDF文档转换为Excel表格的情况&#xff0c;这时候一个好用的转换工具就能帮助我们省时高效地完成任务。下面将介绍几款可靠且实用的PDF转换器软件。 一、小圆象P…

如何使用ArcGIS Pro进行洪水淹没分析

伴随Esri将重心越来越多的放在ArcGIS Pro上,以后ArcGIS的使用场景可能会越来越少,所以我们可以提前接触并使用ArcGIS Pro,做好相关准备。这里为大家介绍一下在ArcGIS中常见的操作——洪水淹没分析在ArcGIS Pro中如何实现。 01 加载数据 在菜单栏上点击插入,点击新建地图,…

每天一道大厂SQL题【Day26】脉脉真题实战(二)活跃时长的均值

文章目录 每天一道大厂SQL题【Day26】脉脉真题实战(二)活跃时长的均值每日语录第26题 中级题: 活跃时长的均值1. 需求列表思路分析 答案获取加技术群讨论附表文末SQL小技巧 后记 每天一道大厂SQL题【Day26】脉脉真题实战(二)活跃时长的均值 大家好&#xff0c;我是Maynor。相信…

通过迁移加速计划迁移到亚马逊云科技

公司出于许多不同的原因迁移到云。也许他们需要关闭一个老化的数据中心。或者&#xff0c;他们正在寻找太昂贵或太难在内部构建和维护的新功能。无论出于何种原因&#xff0c;在开始规划迁移之前&#xff0c;他们还有另一个问题需要回答&#xff1a;哪种云服务适合他们的需求&a…

gogs的自定义配置

在 GOGS 下载并安装后&#xff0c;在程序目录下建立一个custom/conf/app.ini的配置文件&#xff0c;内容如下&#xff1a; APP_NAME Gogs # APP名字 RUN_USER git # 启动用户&#xff0c;设置后只能以此账号启动gogs RUN_MODE prod[database] DB_TYPE mysql HOST 1…

.Net Core Restful Api 版本区分第一种

前言&#xff1a;在我们进行Web Api开发时&#xff0c;版本的区分&#xff0c;是必须要考虑的&#xff0c;涉及到我们的版本发布&#xff0c;切换等&#xff0c;如何从旧版本无缝的切换到新版本&#xff1f; 下面&#xff0c;我们通过使用[ApiVersion]特性&#xff0c;实现两个…

(中等)LeetCode146 LRU 缓存 Java

本题有两种实现操作&#xff0c;需要使用到一个哈希表和一个双向链表。在Java语言中&#xff0c;有一种结合了哈希表和双向链表的数据结构&#xff0c;LinkedHashMap import java.util.LinkedHashMap; import java.util.Map;class LRUCache extends LinkedHashMap<Integer,…

Modbus转Profibus网关modbus仪表不连续

远创智控YC-MDPB-001本产品是一种将Profibus和Modbus总线连接的通讯协议转换设s备。符合Modbus协议的设备&#xff08;如&#xff1a;仪表、传感器、扫码枪等&#xff09;可通过本产品和Profibus总线上的主站设备 1, &#xff08;如&#xff1a;西门子S7-300/400&#xff0c;…