概念:子类中的变量名是什么?他们有名字吗?

时间:2013-04-08 03:00:47

标签: .net oop class object

我正在使用.NET,但我想这可以扩展到其他语言......

因此,当子项继承一个类时,它会获取父项的成员变量和属性。假设有一个私有变量名称“mFirstName”,还有一个名为FirstName的ReadOnly属性,它从对象中获取FirstName的值。

我创建了另一个继承此父级的类,并且在子类中,我可以使用FirstName属性来获取子级中变量的值...但该变量的名称是什么?

或换句话说,在父类中有一个名为mFirstName的私有变量。你在子类中称为等效变量是什么?

2 个答案:

答案 0 :(得分:0)

子类将继承所有字段,包括mFirstName等私有变量。如果父类实现FirstName属性来读取和写入私有mFirstName变量,那么除非重写它,否则子类也是如此。但是,mFirstName对于子类是不可见的,但FirstName属性将 - 子类必须使用FirstName的父类实现,或者,如果允许,则实现它使用覆盖的其他方式。

答案 1 :(得分:0)

这不是 name 的问题,而是辅助功能之一。

私有字段仍然是派生类的成员状态,它恰好是您无法通过名称直接访问的成员状态,除非派生类是基类的嵌套类。

public class Foo
{
    private int bar;

    public virtual void Do()
    {
        this.bar = 1;
    }

    private class DerivedFoo : Foo
    {
        public override void Do()
        {
            this.bar = 2;
        }
    }
}

在上面的示例中,该字段是私有的,但仍可由派生类访问。从Foo继承的外部类不具备相同的功能。

因此字段的名称相同,并且该字段仍然是派生类的状态。 辅助功能完全取决于继承者。