c# base关键的理解
base 最大的使用地方在面相对性开发的多态性上。(什么是多态,如何理解多态)
base可以【完成】创建派生类实例时调用其基类构造函数或者调用基类上已经被其他方法重写的方法
//关于base调用基类构造函数(只能是一个类的构造函数调用另一个类的构造函数)
1 2 3 4 5 6 7 8 9 10 11 12 | public class A { public A(){ Console.WriteLine( "Build A" ); } } public class B : A { public B() : base () { Console.WriteLine( "Build B" ); } }<br> //创建一个B的实例对象,获得结果是同时Build A 和 Build B.<br><br> 实例化 B类<br>输出结果:Build A Build //进一步扩展 调用基类的构造函数的理<em id="__mceDel"><strong>public class BaseClass</strong></em><em id="__mceDel"><em id="__mceDel"><strong>{<br> int num;<br> public BaseClass()<br> {<br> Console.WriteLine("in BaseClass()");<br> }<br> public BaseClass(int i)<br> {<br> num = i;<br> Console.WriteLine("in BaseClass(int {0})", num);<br> }<br>}<br>public class DerivedClass : BaseClass<br>{<br> // 该构造器调用 BaseClass.BaseClass()<br> public DerivedClass()<br> : base()<br> {<br> }<br> // 该构造器调用 BaseClass.BaseClass(int i)<br> public DerivedClass(int i)<br> : base(i)<br> {<br> }<br> static void Main()<br> {<br> DerivedClass dc = new DerivedClass();<br> DerivedClass dc1 = new DerivedClass(1)();<br> Console.ReadLine();<br> }<br>}</strong><br><br></em></em> |
// 在派生类总调用基类的方法(实际是对虚方法的重写)
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class Q { public virtual void Hello() { Console.WriteLine( "Hello" ); } } public class W : Q { public override void Hello() { base .Hello(); Console.WriteLine( "World" ); } }<br> 实例化 W类<br> 输出结果 hello world |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南