从非抽象类派生抽象类可以吗?或者这种方法有问题吗?
下面是一个小例子:
public class Task {
// Some Members
}
public abstract class PeriodicalTask : Task {
// Represents a base class for task that has to be done periodicaly.
// Some additional Members
}
public class DailyTask : PeriodicalTask {
// Represents a Task that has to be done daily.
// Some additional Members
}
public class WeeklyTask : PeriodicalTask {
// Represents a Task that has to be done weekly.
// Some additional Members
}在上面的例子中,我不想让类Task抽象,因为我想直接实例化它。PeriodicalTask应该继承任务的功能并添加一些额外的成员,但我不想直接实例化它。只应实例化PeriodicalTask的派生类。
发布于 2010-04-09 03:16:59
我看不出这种方法有什么问题。
您可能有一些可以用具体术语描述的基本类型。现在,仅仅因为这种类型的对象可以根据某些子类型进一步分类,并不意味着所有这些子类型都是具体的;它们反过来可能需要进一步的具体化。
真实世界的例子:
Person -- 混凝土(非抽象)
Sibling: Person -- 抽象
Brother: Sibling -- concrete
Sister: Sibling -- concrete
发布于 2010-04-09 03:16:10
这没什么问题。
如果你看一下像WinForms这样的大层次结构,你会发现有几层抽象类型。
MSBuild任务也是一个很好的(更相关的)例子。
发布于 2010-04-09 03:18:21
这种事情经常发生:所有抽象类都继承自本身不是abstract的System.Object类。
new System.Object()有时对锁定很有用,如果您周围没有其他任何东西,您可以锁定。
https://stackoverflow.com/questions/2602695
复制相似问题