gpt4 book ai didi

c# - 在 C# 中,子类对象如何直接调用被重写的父类(super class)方法?

转载 作者:行者123 更新时间:2023-11-30 19:56:37 25 4
gpt4 key购买 nike

我今天在 C# 中学习了一些 OOP 概念,在学习的过程中我发现子类 Object 能够直接从其被重写的父类(super class)调用方法,我熟悉 Java,其中如果一个方法被其重写父类(super class),如果子类对象调用相同的方法,则执行子类中存在的方法,而不是父类(super class)方法,我们使用“super”关键字。

我问的是C#是怎么提供这样的特性,直接让子类对象执行父类(super class)方法被覆盖

下图是子类对象“obj”允许我使用的代码通过提供选项“void Super.display”来调用父类(super class)方法显示

Image of Code

最佳答案

使用base.MethodName()

但您需要将您的父方法定义为virtual,并在子类中覆盖该方法。你没有按照你的形象那样做

参见 this example

public class Person
{
protected string ssn = "444-55-6666";
protected string name = "John L. Malgraine";

public virtual void GetInfo()
{
Console.WriteLine("Name: {0}", name);
Console.WriteLine("SSN: {0}", ssn);
}
}
class Employee : Person
{
public string id = "ABC567EFG";
public override void GetInfo()
{
// Calling the base class GetInfo method:
base.GetInfo();
Console.WriteLine("Employee ID: {0}", id);
}
}

class TestClass
{
static void Main()
{
Employee E = new Employee();
E.GetInfo();
}
}
/*
Output
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG
*/

关于c# - 在 C# 中,子类对象如何直接调用被重写的父类(super class)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33374973/

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