gpt4 book ai didi

c# - 使用 C# 的 OOPS 查询

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

我对类和接口(interface)的实现有一些疑问

我有两个这样的类(class)

Public Class A:IFinal
{
private string name=string.Empty;

A()
{
name = "Pankaj";
}

public string MyName()
{
return name;
}

public string YourName()
{
return "Amit";
}
}

Public Class B:IFinal
{
private string name=string.Empty;

B()
{
name = "Amit";
}

public string GetNane()
{
return name;
}

public string YourName()
{
return "Joy";
}
}

问题:

  1. 现在我有一个接口(interface) IFinal,我想在类 A 和 B 中为方法 YourName() 实现这个接口(interface),就像这样

    公共(public)接口(interface) IFinal {

         string YourName();// Class A & Class B


    }

这种方式可以实现吗?如果是,那么我如何在界面中声明 YourName() 以及如何使用它?

  1. 是否可以在接口(interface)中声明虚方法?就像在类 A 和 B 中,我们有一个需要在接口(interface)中声明的虚方法。

最佳答案

您可以在您的实现中使该方法成为虚拟方法,例如:

interface IFinal
{
string YourName();
}

class A: IFinal
{
public virtual string YourName() { return "Amit"; }
}

class B: IFinal
{
public virtual string YourName() { return "Joy"; }
}

或者您可以使用 A 和 B 都派生自的通用基础实现,例如

interface IFinal
{
string YourName();
}

abstract class FinalBase : IFinal
{
public virtual string YourName() { return string.Empty; }
}

class A : FinalBase
{
public override string YourName()
{
return "A";
}
}

class B : FinalBase
{
public override string YourName()
{
return "B";
}
}

class C : A
{
public override string YourName()
{
return "C";
}
}

new A().YourName(); // A
new B().YourName(); // B

IFinal b = new B();
b.YourName(); // B

FinalBase b = new C();
b.YourName(); // C

关于c# - 使用 C# 的 OOPS 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3236795/

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