C#父类和爷爷类都有同名方法如何调用爷爷类的
时间: 2024-03-08 17:49:12 浏览: 416
在 C# 中,可以使用 `base` 关键字加上父类名来调用爷爷类的同名方法。例如:
```csharp
public class Grandfather {
public void SayHello() {
Console.WriteLine("Hello from Grandfather");
}
}
public class Father : Grandfather {
public override void SayHello() {
Console.WriteLine("Hello from Father");
}
}
public class Son : Father {
public override void SayHello() {
// 调用爷爷类的同名方法
base.base.SayHello();
Console.WriteLine("Hello from Son");
}
public static void Main(string[] args) {
Son son = new Son();
son.SayHello(); // 输出:Hello from Grandfather Hello from Son
}
}
```
在上面的例子中,`Son` 类继承了 `Father` 类,而 `Father` 类继承了 `Grandfather` 类。`Grandfather` 类和 `Father` 类都有一个名为 `SayHello` 的方法。在 `Son` 类的 `SayHello` 方法中,使用 `base.base.SayHello()` 调用了爷爷类的同名方法。当执行 `son.SayHello()` 时,首先输出的是调用爷爷类的同名方法 `Hello from Grandfather`,然后输出的是子类自己的输出 `Hello from Son`。需要注意的是,`base.base` 只能用于调用父类的父类的方法,不能继续往上调用更高级别的父类方法。
阅读全文
相关推荐
















