using
System;


//
继承关键字

//
virtual : 声明基类的某个成员在派生类中能被覆盖
派生类继承了其基类的成员.如果派生类用同样的签名定义了一个成员,这个派生类成员就会覆盖基类成员.成员的签名包括它的名称,参数列表,参数类型和返回的类型.
如果一个派生类用同样的名称定义了一个成员,但是定义了与基类不同的参数列表,参数类型或返回类型,派生成员将会重载或者遮蔽该基类成员.如果某个基类成员仍然可用,另一个成员将会重载这个成员.如果派生成员代替了基类成员,另一个成员就会遮蔽这个成员.
能被覆盖的成员必须被声明为virtual(1).

namespace
FlashCards

{

/**//// <summary>
/// CirCle 的摘要说明。
/// </summary>
public class CirCle

{
float fxCenter,fyCenter,fRadius;

public CirCle()

{
//
// TODO: 在此处添加构造函数逻辑
//
fxCenter=0;
fyCenter=0;
fRadius=0;


}
public float Top

{

get
{return fxCenter-fRadius;}//fx

set
{fxCenter=value+fRadius;}
}
public float Left

{

get
{return fyCenter-fRadius;} //fy

set
{fyCenter=value+fRadius;}
}
public virtual float Area()

{
return (float)(System.Math.PI *Math.Pow((double)fRadius,2) );

}
public float Perimeter()//计算周长

{
return 2*fRadius*(float)System.Math.PI;
}
public float Radius //半径

{

get
{return fRadius;}

set
{fRadius=value;}
}

public virtual void Center(float x,float y) //virtual : 声明基类的某个成员在派生类中能被覆盖

{
fxCenter=x;
fyCenter=y;

}

}
public class Sphere:CirCle //球体,圆

{
float fCenter;
public Sphere()

{
fCenter=0;
}
public override float Area()

{
return (float)(4*Math.PI *Math.Pow((double)base.Radius ,2) ); //圆的面积

}
public new void Center(float x,float y)

{
this.Center (x,y,0);
}
public void Center(float x,float y,float z)

{
base.Center(x,y) ;
fCenter=z;
}
public float Volume() //体积

{
return (float)((4/3)*System.Math.PI*Math.Pow((double)base.Radius,3));
}
public float Front

{

get
{return fCenter-base.Radius ;}

set
{fCenter=value+base.Radius ;}

}
}


}
private
void
Button3_Click(
object
sender, System.EventArgs e)

{
CirCle myCircle=new CirCle();
myCircle.Radius =2;
myCircle.Center(10,2);
Response.Write("圆的面积: " +myCircle.Radius.ToString() +"<br>");
Response.Write("圆的面积: " +myCircle.Area()+"<br>");
Response.Write("圆的周长: "+myCircle.Perimeter()+"<br>" ) ;
Sphere mySphere=new Sphere();
mySphere.Radius =10;
mySphere.Center(10,20,25) ;
Response.Write("mySphere Top :"+mySphere.Top +"<br>" ) ;
Response.Write(" Left :"+mySphere.Left +"<br>" ) ;
Response.Write(" Front :"+mySphere.Front +"<br>" ) ;
Response.Write(" volume:"+mySphere.Volume() +"<br>" ) ;
Response.Write(" surface area : "+mySphere.Area()+ "<br>" ) ;
Response.Write(" circumference : "+mySphere.Perimeter() +"<br>" ) ;


}
转载于:https://www.cnblogs.com/furenjun/archive/2006/01/16/318307.html