/// 测试点
/// (1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)
public class baseClass
{

public baseClass()
{
MethodOfOverride();
MethodOfNew();
}

public virtual void MethodOfOverride()
{
Console.WriteLine("baseClass:MethodOfOverride");
}
public void MethodOfNew()
{
Console.WriteLine("baseClass:MethodOfNew");
}


}

public class derivedClass : baseClass
{
public int value;
public derivedClass()
{
value = 2;
}

public override void MethodOfOverride()
{

Console.WriteLine("derivedClass:MethodOfOverride value=" + value.ToString());
}

public new void MethodOfNew()
{
Console.WriteLine("derivedClass:MethodOfNew value=" + value.ToString());
}

}


/// <summary>
/// 测试点
/// (1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)
/// (2) 子类 构造函数 的执行时间 (先执行父类构造函数,再执行子类构造函数)
/// </summary>
class Program
{
static void Main(string[] args)
{
Console.WriteLine("*********baseClass tempClassA = new baseClass()*********");
Console.WriteLine("----------------初始化输出----------------------");
baseClass tempClassA = new baseClass();
Console.WriteLine("----------------下面方法输出------------------------");
tempClassA.MethodOfOverride();
tempClassA.MethodOfNew();

Console.WriteLine("*********derivedClass tempClassB = new derivedClass()*********");
Console.WriteLine("----------------下面初始化输出----------------------");
derivedClass tempClassB = new derivedClass();
Console.WriteLine("----------------下面方法输出------------------------");
tempClassB.MethodOfOverride();
tempClassB.MethodOfNew();

Console.WriteLine("*********baseClass tempClassC = new derivedClass()*********");
Console.WriteLine("----------------下面初始化输出----------------------");
baseClass tempClassC = new derivedClass();
Console.WriteLine("----------------下面方法输出------------------------");
tempClassC.MethodOfOverride();
tempClassC.MethodOfNew();

Console.Read();

//
/* 输出结果
*********baseClass tempClassA = new baseClass()*********
----------------初始化输出----------------------
baseClass:MethodOfOverride
baseClass:MethodOfNew
----------------下面方法输出------------------------
baseClass:MethodOfOverride
baseClass:MethodOfNew
*********derivedClass tempClassB = new derivedClass()*********
----------------初始化输出----------------------
derivedClass:MethodOfOverride value=0
baseClass:MethodOfNew
----------------下面方法输出------------------------
derivedClass:MethodOfOverride value=2
derivedClass:MethodOfNew value=2
*********baseClass tempClassC = new derivedClass()*********
----------------初始化输出----------------------
derivedClass:MethodOfOverride value=0
baseClass:MethodOfNew
----------------下面方法输出------------------------
derivedClass:MethodOfOverride value=2
baseClass:MethodOfNew
*/

}
}
/// (1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)
/// (2) 子类 构造函数 的执行时间 (先执行父类构造函数,再执行子类构造函数)














































































































【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率
· AI Agent爆火后,MCP协议为什么如此重要!
2008-07-06 Rational