[英]Overriding abstract members of abstract classes
我有一个基本的抽象类BasePerson
。 我有另一个抽象类BaseStudent
,它继承自BasePerson
。 这是一个例子。
public abstract class BasePerson
{
public string Name{get;set;}
public string LastName{get;set;}
public abstract object this[string propertyName]{get;set;}
}
public abstract class BaseStudent : BasePerson
{
public string Test{get;set;}
//this class inherits from BasePerson and it forces to override the indexer.
//I can do this:
public override object this[string propertyName]
{
get{return null;}
set
{
//do stuff;
}
}
}
public class Student : StudentBase
{
//other properties
}
现在我无法强制Student
类覆盖索引器。 我应该怎么做才能强制学生覆盖索引器? 我无法从BasePerson
类中删除索引器。
帮助赞赏!
如果要强制它,请不要在BaseStudent
上实现它。 由于BaseStudent
是abstract
,因此不需要实现BasePerson
所有abstract
成员。
public abstract class BasePerson
{
public string Name{get;set;}
public string LastName{get;set;}
public abstract object this[string propertyName]{get;set;}
}
public abstract class BaseStudent : BasePerson
{
public string Test{get;set;}
}
public class Student : BaseStudent
{
//must implement it here since Student isn't abstract!
}
abstract
类不需要定义其继承类的所有 abstract
成员,因此您可以随意将责任传递给任何具体的类来实现它。 Student
没有被定义为abstract
因此它必须实现它已经继承的基类链尚未实现的任何成员。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.