抽象类和抽象方法
在C#中可以定义抽象类作为基类。抽象类是指只能作为基类使用的类。抽象类用于创建派生类,本身不能实例化,也就是不能创建对象。抽象类使用关键字absteract修饰。
抽象类定义格式如下:
abstract class 类名 { 类成员定义 }
抽象类中的成员可以是抽象成员,也可以是非抽象成员。可以从抽象类派生新的抽象类,也可以派生出非抽象类。如果派生类是非抽象类,那么该派生类必须实现基类中所有抽象成员。
抽象方法:
抽象方法只存在于抽象类的定义中,非抽象类中不能包含抽象方法
抽象方法的定义格式为:
访问修饰符 abstract 返回值类型 方法名(参数表);
抽象方法使用关键字abstra修饰,只需要给出方法的函数头部分,一分号结算。注意,抽象方法不包含实现部分,没有函数的花括号部门。如果给出花括号,则出错。
抽象类与抽象方法实例:
class Program
{
static void Main(string[] args)
{
S s1 = new S();
s1.Test(3);
Console.ReadKey();
}
}
abstract class T
{
public abstract void Test(int x);
}
class S : T
{
public override void Test(int x)
{
Console.WriteLine($"x={x}");
}
}
程序输出结果为: x=3;
派生类S中需要重写抽象类中的抽象方法Test,因此使用override关键字。注意,类T是抽象类。如果使用new T(),将出错。
如果希望基类中的一个方法要包含在所有派生类中,可以将基类定义为抽象类,将该方法定义为抽象方法,则基类的所有派生类的所有派生类的定义中都必须重写实现该方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言