关于C#中派生类调用基类构造函数的理解_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 关于C#中派生类调用基类构造函数的理解

关于C#中派生类调用基类构造函数的理解

 2014/6/25 17:53:51  GC2013  程序员俱乐部  我要评论(0)
  • 摘要:(1)当基类中没有自己编写的构造函数时,派生类默认条用基类的构造函数(2)当基类中有自己编写的构造函数时,要在基类中添加无参的构造函数Java代码publicclassMyBaseClass{publicMyBaseClass(){}publicMyBaseClass(inti){Console.WriteLine("我是基类带一个参数的构造函数");}}publicclassMyDerivedClass:MyBaseClass{publicMyDerivedClass():{Console
  • 标签:构造函数 C# 函数 构造 理解

(1)当基类中没有自己编写的构造函数时,派生类默认条用基类的构造函数class="Apple-converted-space"> 
(2)当基类中有自己编写的构造函数时,要在基类中添加无参的构造函数 

Java代码 javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash">ways" /> 收藏代码
  1. public class MyBaseClass  
  2.    {          
  3.        public MyBaseClass() { }  
  4.        public MyBaseClass(int i)  
  5.        {  
  6.   
  7.            Console.WriteLine("我是基类带一个参数的构造函数");  
  8.   
  9.        }  
  10.   
  11.    }  
  12.   
  13.    public class MyDerivedClass : MyBaseClass  
  14.    {  
  15.         
  16.   
  17.        public MyDerivedClass()   :         {  
  18.   
  19.            Console.WriteLine("我是子类无参构造函数");  
  20.   
  21.        }  
  22.   
  23.        public MyDerivedClass(int i)         {  
  24.   
  25.            Console.WriteLine("我是子类带一个参数的构造函数");  
  26.   
  27.        }  
  28.   
  29.        public MyDerivedClass(int i, int j)         {  
  30.   
  31.            Console.WriteLine("我是子类带二个参数的构造函数");  
  32.   
  33.        }  
  34.   
  35.    }  
  36.   
  37.    class Program  
  38.    {  
  39.        static void Main(string[] args)  
  40.        {  
  41.            MyDerivedClass m = new MyDerivedClass();  
  42.        }  
  43.    }  


(3)在基类中有自己编写的构造函数并且在基类中没有添加无参的构造函数时,要在派生类中是用Base指定基类的构造函数 

Java代码  收藏代码
  1. public class MyBaseClass  
  2.    {          
  3.      public MyBaseClass(int i)  
  4.        {  
  5.   
  6.            Console.WriteLine("我是基类带一个参数的构造函数");  
  7.   
  8.        }  
  9.   
  10.    }  
  11.   
  12.    public class MyDerivedClass : MyBaseClass  
  13.    {  
  14.         
  15.   
  16.        public MyDerivedClass()   : base(1)//使用Base指定基类中的构造函数  
  17.        {  
  18.   
  19.            Console.WriteLine("我是子类无参构造函数");  
  20.   
  21.        }  
  22.   
  23.        public MyDerivedClass(int i)  : base(i)  
  24.        {  
  25.   
  26.            Console.WriteLine("我是子类带一个参数的构造函数");  
  27.   
  28.        }  
  29.   
  30.        public MyDerivedClass(int i, int j) : base(i)  
  31.        {  
  32.   
  33.            Console.WriteLine("我是子类带二个参数的构造函数");  
  34.   
  35.        }  
  36.   
  37.    }  
  38.   
  39.    class Program  
  40.    {  
  41.        static void Main(string[] args)  
  42.        {  
  43.            MyDerivedClass m = new MyDerivedClass();  
  44.        }  
  45.    }  



注: 初始化的顺序是从基类到派生类。初始化时首先会调用基类的构造函数初始化基类,然后调用派生类的构造函数初始化派生类。

上一篇: jquery实现页面局部刷新 下一篇: 模型模板
发表评论
用户名: 匿名