gpt4 book ai didi

c# - 重命名继承变量

转载 作者:行者123 更新时间:2023-11-30 19:32:03 31 4
gpt4 key购买 nike

我只是想知道这是否可能......

我有一个基类,它有一个名为 Level 的变量。然后我从中派生一个类,但这里的 Level 应该称为 Points。

有没有办法重命名派生类中的Level变量?

编辑 - 请原谅我将属性称为变量。我对编程很陌生,尤其是对类(class)(我们的老师出于某种原因不教我们)

最佳答案

最接近继承的是:

class BaseClass
{
protected int Level { get; set; }
}

class SubClass : BaseClass
{
public int Points { get { return Level; } set { Level = value; } }
}

但这实际上并没有公开 BaseClass.Level,因为 protected 属性仅对子类可见。

正如@Jason 所解释的,子类不能掩盖其基类的公共(public)接口(interface)。如果您真的想这样做,您可以封装该基类到一个公开其属性的新对象中:

class A
{
public Foo { get; set; }
public Bar { get; set; }
public Level { get; set;}
}

class B
{
private A _internalA;

public Foo { get { return _internalA.Foo; } set { _internalA.Foo = value; } }
public Bar { get { return _internalA.Bar; } set { _internalA.Bar= value; } }
public Points { get { return _internalA.Level; } set { _internalA.Level = value; } }
}

这通常称为组合:B 由 A 组成,而不是从 A 继承。

关于c# - 重命名继承变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6034883/

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