zoukankan      html  css  js  c++  java
  • 关于C#中派生类调用基类构造函数的理解

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

    Java代码  收藏代码
    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.    }  



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

  • 相关阅读:
    如何查找并启动 Reporting Services 工具
    数据压缩技术
    压缩算法
    新版压缩库发布
    如何处理海量数据
    安卓手机获得Root权限
    安卓项目的源码
    压缩算法1
    ODBC, OLEDB, ADO, ADO.Net的演化简史
    C# 文件压缩与解压(ZIP格式)
  • 原文地址:https://www.cnblogs.com/gc2013/p/3807982.html
Copyright © 2011-2022 走看看