我正在尝试实现一个模型,以便基类具有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;}
}
通过这样做,我需要实现所有基类对象。有没有像这样部分实现派生类的方法
由于
答案 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; }
}
这样派生类将覆盖所需的属性,同时保留基类的其他类