如下代码:
public class Ellipse : Shape
{
protected int semiMajorAxis/*长半轴*/, semiMinorAxis/*短半轴*/;
public virtual int SemiMajorAxis
{
get
{
return semiMajorAxis;
}
set
{
semiMajorAxis = value;
}
}
public virtual int SemiMinorAxis
{
get
{
return semiMinorAxis;
}
set
{
semiMinorAxis = value;
}
}
public override double Area //椭圆面积公式:S = pi*a*b
{
get
{
return Math.PI * iMajorAxis * SemiMinorAxis;
}
}
这里面有virtual和override,是什么意思?
回答:
overrride表示重写 这个类是继承于Shape类
public override double Area 这个属性再shape中肯定存在 但是这里我们不想用shape中的 所以要重写
virtual是告诉其它想继承于他的类 你可以重写我的这个方法或属性,否则不允许。
给你一个生动的例子 老爸表示基类(被继承的类) 儿子表示子类(继承的类)
老爸用virtual告诉儿子:"孩子,你要继承我的事业,在这块上面可以自己继续发展你自己的"
儿子用override告诉全世界:"这个我可不是直接拿我爸的,他只是指个路给我,是我自己奋斗出来的"