zoukankan      html  css  js  c++  java
  • 类的覆盖

    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>" ) ;


            }
  • 相关阅读:
    windows系统调用 互斥体mutex
    windows系统调用 利用事件对象实现进程通信
    windows系统调用 调度优先级
    <十四>JDBC_c3p0数据库连接池
    <十三>JDBC_dbcp数据库连接池
    <十二>JDBC_批量处理
    <十一>JDBC_事务的处理+隔离
    <十>JDBC_处理Blob类型数据
    <八>JDBC_重构DAO查询方法
    <七>JDBC_使用beanutils工具类操作javaBean
  • 原文地址:https://www.cnblogs.com/furenjun/p/318307.html
Copyright © 2011-2022 走看看