【发布时间】:2013-11-28 12:16:17
【问题描述】:
我对 c# 用于抽象和继承的方式有点困惑。 例如:抽象类看起来像
abstract class ShapesClass
{
abstract public int Area();
}
class Square : ShapesClass //USES :
{
int side = 0;
public Square(int n)
{
side = n;
}
// Area method is required to avoid
// a compile-time error.
public override int Area()
{
return side * side;
}
static void Main()
{
Square sq = new Square(12);
Console.WriteLine("Area of the square = {0}", sq.Area());
}
}
继承的样子,
public class WorkItem
{
private static int currentID;
//Properties.
protected int ID { get; set; }
protected string Title { get; set; }
protected string Description { get; set; }
protected TimeSpan jobLength { get; set; }
public WorkItem()
{
ID = 0;
Title = "Default title";
Description = "Default description.";
jobLength = new TimeSpan();
}
}
public class ChangeRequest : WorkItem //This also uses :
{
protected int originalItemID { get; set; }
}
那么如何区分呢?
【问题讨论】:
-
查看父类,看是否抽象
-
这不是非此即彼的情况。两者都是继承的例子。在第一种情况下,基类是抽象的。在第二种情况下,基类不是抽象的。抽象类明确声明为这样(即:使用
abstract关键字)。还有什么好说的?
标签: c# c#-4.0 inheritance abstract-class