为什么继承不能与值一起使用?

时间:2014-02-19 20:14:46

标签: c# inheritance

我需要在我的应用程序中创建同一个类的多个实例。 在本课程中,我需要访问其他课程的属性,而且我并不是真的想在我的所有课程中推动我的属性。

所以我认为我可以让这个类继承自具有我需要的所有属性的父类。

例如:

// This class is called only once at the start of my app
class Parent
{
    int Property1 = 0;

    public Parent(int val)
    {
        this.Property1 = val;
    }
}


class Child : Parent
{
    public Child()
    {
    }

    public void PrintProp()
    {
        // Will always print the value of Parent's Property1 which has been defined only once
        Console.WriteLine(Property1);
    }
}

该代码的问题是,每次我定义一个新的Child()时,Property1值为0,而不是我在程序启动时发送的值。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

面向对象编程语言中的继承是一种用于关联维护关系的类的机制。1

有关this article编程语言作者的观点,请参阅Eiffel

有关详细信息,另请参阅this wikipedia article。 (我会注意到,目前该文件的来源很差。)

看来,您要完成的工作类似于全局值或跨实例共享值。有关在Windows Presentation Framework中执行此操作的机制,请参阅this article

如果您希望新实例与另一个实例具有相同的值,则需要复制这些值,或者将一个实例指向另一个实例对象以获取其值。

要以面向对象的方式共享全局值,请查看Singleton Pattern