重写和重载的区别
接触过编程代码的⼈都知道重载和重写,但是很多⼈来说,总是不能很好的区别它们,其实区别它们很容易,只要你常常练习编代码,不久就能从本质上将他们区分开。
⼩编给你举⼀下代码例⼦,可以通过代码了解⼀下
OverrideNew.cs
namespace NET.MST.Third.OverrideNew
{
public class OverrideNew
{
static void Main(string[] args)
{
//测试重写和隐藏的功能
反对校园暴力 OverrideBa b = new OverrideBa();
NewBa nb = new NewBa();
Console.WriteLine(ob.ToString() + ":" + ob.GetString());
Console.WriteLine(nb.ToString() + ":" + nb.GetString());
烤箱做面包的家庭做法 Console.WriteLine("\r\n");
//重写和隐藏的区别
Ba bb = ob as Ba;
Ba nbb = nb as Ba;
Console.WriteLine(obb.ToString() + ":" + obb.GetString());
Console.WriteLine(nbb.ToString() + ":" + nbb.GetString());
Console.Read();
}
}
//基类
class Ba
{
public virtual string GetString()
{
return "我是基类";
}
}
成都好 //重写
class OverrideBa : Ba
{
public override string GetString()
{
自编诗歌 return "我重写了基类";
}
}
//隐藏
class NewBa : Ba
{
public new virtual string GetString()
深层补水
{
return "我隐藏了基类";
}
}
打喷嚏是什么原因引起的
}
}
//重写
class OverrideBa : Ba
{
public override string GetString()
白种人上帝的骄子
{
return "我重写了基类";
}
}
//隐藏
class NewBa : Ba
{
public new virtual string GetString()
{
计量器具管理制度 return "我隐藏了基类";
}
}
}
看完了上⾯的代码,是不是能理解重载和重写了呢,下⾯⼩编再给你说明⼀下重载和重写的定义。
重载
同⼀个作⽤域内发⽣(⽐如⼀个类⾥⾯),定义⼀系列同名,但是⽅法的参数列表不同。这样才能通过传递不同的参数来决定到底调⽤哪⼀个。⽽返回值类型不同是不能构成重载的。
重写
继承时发⽣,在⼦类中重新定义⽗类中的⽅法,⼦类中的⽅法和⽗类的⽅法是⼀样的。