gpt4 book ai didi

c# - 覆盖已经被覆盖的虚函数

转载 作者:行者123 更新时间:2023-11-30 17:02:23 25 4
gpt4 key购买 nike

我试图覆盖/重载一个已经在基类中被覆盖的虚函数。为了更好地理解我想要做什么,请查看以下示例:

public class Parent
{
public virtual void foo() {
print("Parent::foo()");
}
}

public class Derived : Parent
{
public override void foo() {
print("Derived::foo()");
}
}

public class Child : Derived
{
public override void foo() {
print("Child::foo()");
}
}


// When I create an instance of Child and call the method foo,
// it calls the Derived::foo() method and not Child::foo()
// How can I make Child override Derived::foo()?

是否可以覆盖 Derived::foo()?如果不是,您会建议我如何解决这个问题?

最佳答案

这会在 C# 中调用 Child::foo。试试这个代码:

class Program {
static void Main()
{
Parent foo = new Child();
foo.foo();
}
}

// Define other methods and classes here
public class Parent
{
public virtual void foo() {
Console.WriteLine("Parent::foo()");
}
}

public class Derived : Parent
{
public override void foo() {
Console.WriteLine("Derived::foo()");
}
}

public class Child : Derived
{
public override void foo() {
Console.WriteLine("Child::foo()");
}
}

这将运行并打印 Child::foo()

关于c# - 覆盖已经被覆盖的虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19919091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com