我目前正在使用C#,我正在使用一个库,在那里你可以 public override void
但这显然覆盖了整个方法。
有没有 "追加方法 "的关键词?比如说
class A
{
public virtual void HelloWorld()
{
Console.WriteLine("Do this first");
Console.ReadLine();
}
}
class B : A
{
public append void HelloWorld() // <-- Special "append" keyword?
{
Console.WriteLine("Then do this!");
Console.ReadLine();
}
}
因此,输出的 class B : A, HelloWorld()
将是
Do this first
Then do this!
你可以通过以下方式调用父类方法 base
关键字
class A
{
public virtual void HelloWorld()
{
Console.WriteLine("Do this first");
}
}
class B : A
{
public override void HelloWorld() // <-- Special "append" keyword?
{
base.HelloWorld();
Console.WriteLine("Then do this!");
}
}
你可以在重载的方法中通过 base
关键字。
class B : A
{
public override void HelloWorld()
{
base.HelloWorld(); // will print "Do this first" and wait for console input
Console.WriteLine("Then do this!");
Console.ReadLine();
}
}
没有具体的关键词来表达你的要求,但你可以调用 "我"。基础 的派生类中的实现来实现同样的功能。
class A
{
public virtual void HelloWorld()
{
Console.WriteLine("Do this first");
Console.ReadLine();
}
}
class B : A
{
public override void HelloWorld()
{
base.HelloWorld();
Console.WriteLine("Then do this!");
Console.ReadLine();
}
}
你需要先修改你的代码来调用基础实现。
class B : A
{
public override void HelloWorld()
{
base.HelloWorld();
Console.WriteLine("Then do this!");
Console.ReadLine();
}
}
语言没有任何 "追加 "的概念,也没有要求你这样做,也没有提供任何方法来强制执行基实现总是被调用。
你可以在base中使用相同的工作,在子方法中使用额外的工作。
class A
{
public void DoSomething()
{
//Do Something
}
}
class B: A
{
public void DoSomethingExtra()
{
base.DoSomething();
//Do extra things
}
}