为什么这段代码的结果会是这个???

toxxj 2007-02-10 09:39:23
using System;
using System.Collections.Generic;
using System.Text;

namespace ch09e03
{
class Program
{
static void Main(string[] args)
{
myderivedclass myobj = new myderivedclass(4);
Console.ReadKey();
}
}

public class mybaseclass
{
public mybaseclass()
{
Console.WriteLine("mybaseclass 构造函数");
}

public mybaseclass(int i)
{
Console.WriteLine("mybaseclass 带参数的构造函数");
}

}

public class myderivedclass : mybaseclass
{
public myderivedclass()
{
Console.WriteLine("myderivedclass 构造函数");


}

public myderivedclass(int i)
{
Console.WriteLine("myderivedclass 带参数的构造函数");
}

public myderivedclass(int i, int j)
{
Console.WriteLine("myderivedClass带两个参数和构造函数");
}
}
}

/* 为什么结果显示的是:
mybaseclass 构造函数
myderivedclass 带参数的构造函数
*/

/*而不是:
mybaseclass 带参数的构造函数
myderivedclass 带参数的构造函数
*/
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Erison 2007-02-10
  • 打赏
  • 举报
回复
打快了点,是base
Erison 2007-02-10
  • 打赏
  • 举报
回复

public myderivedclass(int i)
{
Console.WriteLine("myderivedclass 带参数的构造函数");
}
改成
public myderivedclass(int i):Base(i)
{
Console.WriteLine("myderivedclass 带参数的构造函数");
}
再试试
toxxj 2007-02-10
  • 打赏
  • 举报
回复
这段代码是<<C#入门经典(第三版)>>上的,书上运行的结果是:

mybaseclass 带参数的构造函数
myderivedclass 带参数的构造函数

也就说事件的顺序是:
1.system.object.object
2.mybaseclass.mybaseclass(int i)
3.myderivedclass.myderivedclass(int i)

但实际的结果却是:
1.system.object.object
2.mybaseclass.mybaseclass()
3.myderivedclass.myderivedclass(int i)

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧