C#中的基类实现

时间:2016-10-08 17:39:33

标签: c# solid-principles

我正在尝试实现一个模型,以便基类具有5个属性,派生类将实现它所需要的。举个例子:

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;}
}

在派生类上我希望有这样的东西:

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;}
}

通过这样做,我需要实现所有基类对象。有没有像这样部分实现派生类的方法

由于

2 个答案:

答案 0 :(得分:4)

如果我理解了这个问题,你可以选择重写基类中属性的实现。

您可以使用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; }
}

以这种方式你可以选择在派生类中覆盖它:

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

答案 1 :(得分:2)

使用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; }
}

这样派生类将覆盖所需的属性,同时保留基类的其他类

相关问题