C# 中的基础 class 实现

base class implementation in C#

我正在尝试实现一个模型,以便基础 class 具有大约 5 个属性,派生的 class 将实现它所需要的。例如:

public class BaseClass
{
 public int a{get;set;}
 public int b{get;set;}
 public int c{get;set;}
 public int d{get;set;}
 public int e{get;set;}
}

在派生的 classes 上我想要这样的东西:

public class DerivedClass: BaseClass
{
public override int a{get;set;}
public int derivedClass1 {get;set;}
}

public class DerivedClass1 :BaseClass
{
public override int a{get;set;}
public override int b{get;set;}
public int derivedClass1 {get;set;}
}

public class DerivedClass2 :BaseClass
{
public override int a{get;set;}
public override int b{get;set;}
public override int c{get;set;}    
public int derivedClass2 {get;set;}
}

public class DerivedClass3:BaseClass
{
public override int a{get;set;}
public override int b{get;set;}
public override int c{get;set;}
public override int c{get;set;}
public int derivedClass3 {get;set;}
}

通过这样做,我需要实现所有基础 class 对象。有没有办法像这样

部分实现派生的 class

谢谢

使用virtual关键字

public abstract class BaseClass
{
    public virtual int a { get; set; }
    public virtual int b { get; set; }
    public virtual int c { get; set; }
    public virtual int d { get; set; }
    public virtual int e { get; set; }
}

以这种方式派生的 classes 将覆盖所需的属性,同时保持基础 class 其他

如果我理解了这个问题,您想有选择地重写基础 class 中属性的实现。

您可以使用 virtual 关键字:

public abstract class BaseClass
{
    public virtual int a { get; set; }
    public virtual int b { get; set; }
    public virtual int c { get; set; }
    public virtual int d { get; set; }
    public virtual int e { get; set; }
}

以这种方式,您可以选择在派生的 classes:

中覆盖它
public class DerivedClass: BaseClass
{
    public override int a { get; set; }
    public int derivedClass1 { get; set; }
}