从现有类创建新类:继承或部分类?

时间:2012-11-27 16:17:13

标签: c#

我有一个类定义了这样的对象:

public class MyClass{

   public int TheInt { get; set; }

   public void SomeMethod() { ... }
}

实际上,还有其他一些属性和方法。现在我想创建一个新类MyEnhancedClass,它具有MyClass的所有属性和方法,并且还有2个方法和4个属性。

目前,我的代码有两个看起来非常相似的不同类;我想重构这些类,我想知道部分类和继承。最好的方法是什么?继承还是部分类?我知道这是一个基本的OOP问题,但请耐心等待。

感谢您的建议。

3 个答案:

答案 0 :(得分:5)

我假设你在谈论继承。要从另一个类继承一个类,请在C#中使用以下表示法:

public class MyExtendedClass : MyClass
{
    // custom code
}

更新:尽管继承可能不是每种情况下的最佳解决方案(请参阅下面的Oded的评论),但应避免使用部分类,因为它们会更糟。它们不是语言的一部分,而是语法糖,鼓励引入各种代码气味。

答案 1 :(得分:2)

public class MyEnhancedClass : MyClass {

 public override void SomeMethod() { ... }    

 // other functions here

}

答案 2 :(得分:2)

部分类允许跨多个文件跨越类。例如,一个文件中的部分定义,另一个文件中的其余部分。

继承允许将其他功能添加到现有类。继承父级的类可以添加其他函数,属性或覆盖父方法(提供父级允许此方法)来扩展功能。

从你所描述的情况来看,后者可能是更好的选择。

public class ChildOfMyClass : MyClass {
    public string TheString{get{return "Number : " + TheInt;}}

    public void Foo() {
    }
}

ChildOfMyClass可以访问MyClass

的功能和属性