C#的base关键字理解
1.C#中的base关键字和Java中的super关键字作用一样,都是用于父类和子类的继承中,当子类中要涉及到父类中的功能时,C#使用base,Java使用super。
2.base调用父类中的构造方法
1 public class A 2 { 3 public A() 4 { 5 Console.WriteLine("Build A"); 6 } 7 } 8 public class B:A 9 { 10 public B():base() 11 { 12 Console.WriteLine("Build B"); 13 } 14 static void Main() 15 { 16 B b = new B(); 17 Console.ReadLine(); 18 } 19 }
创建一个B的实例对象,结果控制台输出Build A 和Build B。
1 using System; 2 public class BaseClass 3 { 4 protected string _className = "BaseClass"; 5 public virtual void PrintName() 6 { 7 Console.WriteLine("Class Name: {0}", _className); 8 } 9 } 10 class DerivedClass : BaseClass 11 { 12 public string _className = "DerivedClass"; 13 public override void PrintName() 14 { 15 Console.Write("The BaseClass Name is {0}"); 16 //调用基类方法 17 base.PrintName(); 18 Console.WriteLine("This DerivedClass is {0}", _className); 19 } 20 } 21 class TestApp 22 { 23 public static void Main() 24 { 25 DerivedClass dc = new DerivedClass(); 26 dc.PrintName(); 27 } 28 }
3.base调用父类中的方法
1 public class A 2 { 3 public virtual void Hello() 4 { 5 Console.WiriteLine("Hello"); 6 } 7 } 8 public class B : A 9 { 10 public override void Hello() 11 { 12 base.Hello();//调用基类的方法,显示Hello 13 Console.WiriteLine("World"); 14 } 15 }
控制台输出Hello World。
1 // keywords_base2.cs 2 using System; 3 public class BaseClass 4 { 5 int num; 6 public BaseClass() 7 { 8 Console.WriteLine("in BaseClass()"); 9 } 10 public BaseClass(int i) 11 { 12 num = i; 13 Console.WriteLine("in BaseClass(int {0})", num); 14 } 15 } 16 public class DerivedClass : BaseClass 17 { 18 // 该构造器调用 BaseClass.BaseClass() 19 public DerivedClass() 20 : base() 21 { 22 } 23 // 该构造器调用 BaseClass.BaseClass(int i) 24 public DerivedClass(int i) 25 : base(i) 26 { 27 } 28 static void Main() 29 { 30 DerivedClass dc = new DerivedClass(); 31 DerivedClass dc1 = new DerivedClass(1)(); 32 Console.ReadLine(); 33 } 34 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix