DotNet编程-星光伴我行

滴滴真谛 水滴石穿

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
//抽象类
//    Visual Studio 允许定义抽象类.抽象类是为了派生类而定义接口的一个类.抽象类从本质上说是抽象的,
//因为在抽象类基础上建立的所有类都提供了一定的方法和属性.您不能在抽象类中创建对象----只能利用
//它们来派生新的类
//   抽象类在c#中用abstract 关键字来声明.必须提供的方法与属性用abstract来表明.
//     在vb.net中用MustInherit          ,                      MustOverride  .




using System;



namespace FlashCards
{
    
/// <summary>
    
/// Shape 的摘要说明。
    
/// </summary>

    public abstract class Shape //形状
    {
        
public Shape()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }

        
public abstract float Top
        
{
            
get;
            
set;
        }

        
public abstract float Left
        
{
            
get;
            
set;
        }

        
public abstract float Area();
        
public abstract float Perimeter();
        

    }


    
//覆盖抽象类成员的每一个成员定义都需要 Overrides(vb.net) 或 override(c#)  关键字.
    public class CirCle:Shape
    
{
        
float fxCenter,fyCenter,fRadius;
        
public CirCle()
        
{
            fxCenter
=0;
            fyCenter
=0;
            fRadius
=0;

        }


        
public override float Top
        
{
            
get{return fxCenter-fRadius;} //fx
            set{fxCenter=value+fRadius;}

        }

        
public override float Left
        
{
            
get{return fyCenter-fRadius;} //fy
            set{fyCenter=value+fRadius;}
        }


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

        
public override 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)
        
{
            fxCenter
=x;
            fyCenter
=y;
        }

    }


    

    




}

posted on 2006-01-16 17:48  DotNet编程  阅读(424)  评论(0编辑  收藏  举报