当某个基类方法不适用于派生类时,我们在子类中重新定义该方法并使用new关键字屏蔽掉
示例:
/// <summary>
/// 通过用与基类成员名称相同的成员来屏蔽基类成员。/// 要点:
/// 1.要屏蔽一个继承的数据成员,需要声明一个新的相同类型的成员,并使用相同的名称。
/// 2.通过在培生累中声明新的带有相同签名的函数成员,可以隐藏或屏蔽继承的函数成员。请记住,签名由名称和参数列表组成,不好看返回类型。
/// 3.要让比以前知道你再故意屏蔽继承的成员,使用new修饰符,否则,程序可以成功编译,但编译器会警告你隐藏了一个继承的成员。
/// 4.页可以屏蔽静态成员。
///
/// </summary>
///
class SomeClass
{
public string Field1 = "SomeClass";
public void Method1(string value)
{
Console.WriteLine("SomeClass.Method1: {0}", value);
}
}
class OtherClass : SomeClass
{
//屏蔽基类成员
public new string Field1 = "OtherClass";
//屏蔽基类成员
public new void Method1(string value)
{
Console.WriteLine("OtherClass.Method1: {0}", value);
}
}
class Program
{
static void Main(string[] args)
{
OtherClass otherClass = new OtherClass();
Console.WriteLine(otherClass.Field1);
otherClass.Method1(otherClass.Field1);
Console.ReadLine();
}
}