• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#中重写、重载和隐藏的概念

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

重写override

用 override 关键字重新实现基类中的虚方法virtual
在运行的过程中,无论通过哪个类型的引用,真正对象类型的方法将被调用

隐藏

隐藏是指用 new关键字重新实现基类中的方法
在运行的过程中通过引用的类型判断应该调用哪个类型的方法

父类Parent

public class Parent
{

	public void NewMethod()
	{
		Console.WriteLine($"{nameof(Parent)}.{nameof(NewMethod)}");
	}

	public virtual void VirtualMethod()
	{
		Console.WriteLine($"{nameof(Parent)}.{nameof(VirtualMethod)}");
	}

	private void PrivateMethod()
	{
		//不可被子类访问
	}
}

子类Child

public class Child: Parent
{
	/// <summary>
	/// 重写虚方法
	/// </summary>
	public override void VirtualMethod()
	{
		base.VirtualMethod();
		Console.WriteLine($"{nameof(Child)}.{nameof(VirtualMethod)}");
	}

	/// <summary>
	/// 隐藏、new关键词重新实现
	/// </summary>
	public new void NewMethod()
	{
		//base.NewMethod();
		Console.WriteLine($"{nameof(Child)}.{nameof(NewMethod)}");
	}
}

重载

重载是指多个方法共享同一个名字并且拥有相同的返回值,但是却可以拥有不同的参数列表

public void OverloadMethod()
{
	Console.WriteLine($"This is OverloadMethod");
}

public void OverloadMethod(string input)
{
	Console.WriteLine($"This is OverloadMethod:{input}");
}

public void OverloadMethod(int input)
{
	Console.WriteLine($"This is OverloadMethod:{input}");
}

public void OverloadMethod(bool input)
{
	Console.WriteLine($"This is OverloadMethod:{input}");
}

示例代码

OverrideNewAndVirtual


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#算法最值/平均发布时间:2022-07-13
下一篇:
C#取整函数Math.Round、Math.Ceiling和Math.Floor发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap