方法重载overload,方法重写override,隐藏new
1.方法重载overload:同一个类中有两个或多个方法名相同但参数不一致的方法。(返回值类型并不能区分函数是否是重载),允许用相同的名称不同的参数个数来调调用多个方法。
class Person
{
public void SayHello()
{
Console.WriteLine("Hello");
}
public void SayHello(string word)
{
Console.WriteLine(word);
}
}
2.方法重写override:子类重写父类中的方法。当方法进行重写时,必须使用override修饰。
A.对虚方法的重写:重写父类中的方法,对父类中的方法进行覆盖。
public class Person
{
public virtual void SayHello()
{
Console.WriteLine("Say hello!");
}
}
public class Chinese : Person
{
public override void SayHello()
{
Console.WriteLine("中国人问好!");
}
}
B.对抽象方法的重写:重写父类中的方法,父类必须是abstract修饰,父类中的方法也必须用abstract修饰,父类中的方法不实现。
abstract class Person
{
public abstract void SayHello();
}
class Chinese : Person
{
public override void SayHello()
{
Console.WriteLine("中国人问好!");
}
}
3.隐藏new在子类中写一个和父类名字一样的非虚方法,会让父类中的函数被隐藏,使用new关键字来显示隐藏父类的方法。
public class Person
{
public void SayHello()
{
Console.WriteLine("Say hello!");
}
}
public class Chinese : Person
{
public new void SayHello()
{
Console.WriteLine("中国人问好!");
}
}