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 }
复制代码

 

posted @   lc2100222  阅读(642)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示