c#中的父/子类

时间:2010-10-26 08:57:02

标签: c# oop

我之前已经问过这个问题,因为我已经接受了答案,我想我会另外提出另一个问题。

Recommended program structure

我的查询是:不同的类每个都有很多重叠但可能是奇怪的布尔变量或字符串不同 - 所以我可以将它们存储在类中的私有变量中,但常见的方法(在父类中定义)总是使用父值。

现在,我知道这是有道理的 - 让父母使用它自己的价值观。但有没有办法实现我想要的系统而不需要在每个子类中复制相同的方法?能够为此使用父类是很好的,这样未来的更改就不需要在8个不同的地方进行更改,而且只是更加整洁。

我希望这是有道理的,任何反馈都会非常感激!

2 个答案:

答案 0 :(得分:2)

也许你应该调查使用Composition而不是Inheritance。这在OOP中是一种完全不同的思维方式,但它允许更多的灵活性。

以下是CodeProject对该主题的评价很高的文章:CP Article

答案 1 :(得分:1)

超出标准继承的任何东西?

public class YourBaseClass { // perhaps abstract
    public int SomeParentValue {get;set;}
    public void SomeParentMethod() {Console.WriteLine(SomeParentValue);}
}
public class A : YourBaseClass {
    public string SomeValueA {get;set;}
}
public class B : YourBaseClass {
    public DateTime SomeValueB {get;set;}
}
public class C : A {
    public bool SomeValueC {get;set;}
}