您的位置:程序门 -> .net技术 -> c#



在派生类中调用基类构造函数


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


在派生类中调用基类构造函数[已结贴,结贴人:cstt60777]
发表于:2007-09-19 05:36:39 楼主
在派生类中调用基类构造函数。  
//   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#好像没有这个功能,所有必须要调用基类的构造函数
发表于:2007-09-19 06:40:061楼 得分:5
如果没有明确指明base,编译器会自动添置调用基类的默认构造器,即不带参数的那个,所以

public   derivedclass()   :   base()


里面的base()是多余的
发表于:2007-09-19 08:14:472楼 得分:0
钻石都出来了,我们就不现丑了。
楼上正解,我试过的


快速检索

最新资讯
热门点击