class Parent
{
public void foo()
{
Console.WriteLine("Hello from the foo inside Parent");
}
public virtual void bar()
{
Console.WriteLine("Hello from the bar inside Parent.");
}
public void foobar()
{
Console.WriteLine("Hello from the foobar inside Parent.");
}
}
class Child : Parent
{
public void foo()
{
base.foo();
Console.WriteLine("Hello from the foo inside Child");
}
public override void bar()
{
base.bar();
Console.WriteLine("Hello from the bar inside Child.");
}
public new void foobar()
{
base.foobar();
Console.WriteLine("Hello from the foobar inside Child.");
}
}
以上是我用来测试我在 C# 中继承知识的代码,但我在这里有一个困惑:
- 子内部的函数
foo()
隐藏了foo()
父级。 - 子内部的函数
bar()
隐藏了bar()
父级。 - child 内部的函数
foobar()
隐藏了bar()
parent()
这三个函数都使用不同的技术来隐藏父函数。谁能指导我,这三个之间有什么区别以及何时使用哪一个?