方法重載overload祭示,方法重寫(xiě)override,隱藏new
1.方法重載overload:同一個(gè)類(lèi)中有兩個(gè)或多個(gè)方法名相同但參數(shù)不一致的方法谴古。(返回值類(lèi)型并不能區(qū)分函數(shù)是否是重載)绍移,允許用相同的名稱(chēng)不同的參數(shù)個(gè)數(shù)來(lái)調(diào)調(diào)用多個(gè)方法。
class Person
{
public void SayHello()
{
Console.WriteLine("Hello");
}
public void SayHello(string word)
{
Console.WriteLine(word);
}
}
2.方法重寫(xiě)override:子類(lèi)重寫(xiě)父類(lèi)中的方法讥电。當(dāng)方法進(jìn)行重寫(xiě)時(shí)蹂窖,必須使用override修飾。
A.對(duì)虛方法的重寫(xiě):重寫(xiě)父類(lèi)中的方法恩敌,對(duì)父類(lèi)中的方法進(jìn)行覆蓋瞬测。
public class Person
{
public virtual void SayHello()
{
Console.WriteLine("Say hello!");
}
}
public? class Chinese : Person
{
public override void SayHello()
{
Console.WriteLine("中國(guó)人問(wèn)好!");
}
}
B.對(duì)抽象方法的重寫(xiě):重寫(xiě)父類(lèi)中的方法,父類(lèi)必須是abstract修飾月趟,父類(lèi)中的方法也必須用abstract修飾灯蝴,父類(lèi)中的方法不實(shí)現(xiàn)。
abstract? class Person
{
public abstract void SayHello();
}
class Chinese : Person
{
public override void SayHello()
{
Console.WriteLine("中國(guó)人問(wèn)好孝宗!");
}
}
3.隱藏new在子類(lèi)中寫(xiě)一個(gè)和父類(lèi)名字一樣的非虛方法穷躁,會(huì)讓父類(lèi)中的函數(shù)被隱藏,使用new關(guān)鍵字來(lái)顯示隱藏父類(lèi)的方法因妇。
public class Person
{
public void SayHello()
{
Console.WriteLine("Say hello!");
}
}
public? class Chinese : Person
{
public new void SayHello()
{
Console.WriteLine("中國(guó)人問(wèn)好问潭!");
}
}