首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在派生类中调用基类构造函数,该怎么处理

2011-12-30 
在派生类中调用基类构造函数在派生类中调用基类构造函数。//keywords_base2.csusingSystempublicclassBase

在派生类中调用基类构造函数
在派生类中调用基类构造函数。  
//   keywords_base2.cs
using   System;
public   class   BaseClass
{
        int   num;

        public   BaseClass()
        {
                Console.WriteLine( "in   BaseClass() ");
        }

        public   BaseClass(int   i)
        {
                num   =   i;
                Console.WriteLine( "in   BaseClass(int   {0}) ",   num);
        }
}

public   class   DerivedClass   :   BaseClass
{
        //   该构造器调用   BaseClass.BaseClass()
        public   DerivedClass()   :   base()
        {
        }

        //   该构造器调用   BaseClass.BaseClass(int   i)
        public   DerivedClass(int   i)   :   base(i)
        {
        }

        static   void   Main()
        {
                DerivedClass   dc   =   new   DerivedClass();
                DerivedClass   dc1   =   new   DerivedClass(1);
        }
}

/**//*
控制台输出:
in   BaseClass()
in   BaseClass(1)
*/


如果我在   //   该构造器调用   BaseClass.BaseClass()
        public   DerivedClass()   :   base()
        {
        }

我发现   public   DerivedClass()   :   base()
        {
        }
  和   public   DerivedClass()    
        {
        }
功能一样,那么base()在这里还有什么用????
难道不生成基类,可以生成子类吗,c#好像没有这个功能,所有必须要调用基类的构造函数

[解决办法]
如果没有明确指明base,编译器会自动添置调用基类的默认构造器,即不带参数的那个,所以

public DerivedClass() : base()


里面的base()是多余的

热点排行