C# 接口、抽象类、以及事件
接口、抽象类,用于项目集成,如:
Interface icls = appid == "A" ? new ClassA() : new ClassA();
icls.func("Hello");
接口定义
/// <summary> /// 接口成员:属性、方法、事件 /// 成员不能有 new、static、abstract、override、virtual 修饰符 /// </summary> public interface Interface { string func( string str); } |
接口实现
/// <summary> /// 定义子类A /// </summary> public class ClassA : Interface { public string func( string str) { return str; } } /// <summary> /// 定义子类B /// </summary> public class ClassB : Interface { public string func( string str) { return str; } } |
接口调用
public MainWindow() { InitializeComponent(); //调用方式一 Interface icls = new ClassA(); String hello = icls.func( "Hello" ); //调用方式二 ClassB cls = new ClassB(); String world = cls.func( "World" ); } |
抽象类定义
/// <summary> /// 不能初始化的类被叫做抽象类,它们只提供部分实现 /// </summary> public abstract class IAbstract { //子类不需要实现,但可以重写 public virtual string ToString( string str) { return str; } //抽象方法声明不提供实际的实现,需要子类实现 public abstract void ToPrint(); } |
抽象类实现
/// <summary> /// 定义子类C /// </summary> public class ClassC : IAbstract { public override void ToPrint() { } } |
抽象类调用
public MainWindow() { InitializeComponent(); //抽象类调用 IAbstract clsc = new ClassC(); clsc.ToString( "Hello" ); clsc.ToPrint(); } |
"唯有高屋建瓴,方可水到渠成"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决