我必须与课程类别创建一个课程管理系统:多派生抽象类?
Cooking, sewing and writing courses
cooking
和writing
各有2个疗程(意大利,海鲜,创意写入和商业写)。这将创建衍生摘要:
abstract course -> abstract cooking -> concrete seafood
抽象烹饪和写作有共同的领域和一些常用的方法,但是它们也有许多是在基类抽象的抽象方法。
这可以在C#中完成吗?如果我使派生的抽象类方法抽象Visual Studio说他们隐藏基类抽象,然后具体的类方法有错误说基类必须是抽象的(它是但不能注册)。我寻找答案。我知道在C#中使用单继承,但继承带来了链条。什么是最好的答案?
下面的代码片段 - 我希望澄清的问题:
public abstract class Course
{
public abstract void AddStudent(StudentName sn, int f);
public abstract decimal CalculateIncome();
}
public abstract class WritingCourse : Course
{
public void AddStudent(StudentName sn, int f)
{
//Add student
}
public abstract decimal CalculateIncome(); // can only be claculated in concrete
}
public class BusinessWritCourse : WritingCourse
{
public void AddStudent(StudentName sn, int f):
base(sn, false){}
public decimal CalculateIncome()
{
return //do stuff
}
}
public class SewingCourse : Course
{
public override void AddStudent(StudentName sn, int f)
{
//do stuff
}
public override decimal CalculateIncome()
{
return //do stuff
}
}
你可以用你遇到的问题发布示例代码吗? –