zoukankan      html  css  js  c++  java
  • 抽象类

    //抽象类
    //    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;
            }

        }


        

        




    }

  • 相关阅读:
    BigInteger实现除法取余
    BigDecimal介绍及BigDecimal实现四舍五入
    Jenkins的凭证管理
    Adapter(适配器)-类对象结构型模式
    singleton(单件)-对象创建型模式
    ProtoType(原型)-对象创建型模式
    Factory Method(工厂方法)-对象创建型模式
    Builder(生成器)-对象创建型模式
    Abstract Factory(抽象工厂)模式
    设计模式-序
  • 原文地址:https://www.cnblogs.com/furenjun/p/318423.html
Copyright © 2011-2022 走看看