DotNet编程-星光伴我行

滴滴真谛 水滴石穿

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
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>" ) ;


        }
posted on 2006-01-16 15:57  DotNet编程  阅读(501)  评论(0编辑  收藏  举报