C#派生类的构造函数实例

下面的示例说明使用基类初始值设定项。Circle 类是从通用类 Shape 派生的,Cylinder 类是从 Circle 类派生的。每个派生类的构造函数都使用其基类的初始值设定项。 

abstract class Shape
{
    
public const double pi = System.Math.PI;
    
protected double x, y;

    
public Shape(double x, double y)
    
{
        
this.x = x;
        
this.y = y;
    }


    
public abstract double Area();
}


class Circle : Shape
{
    
public Circle(double radius)
        : 
base(radius, 0)
    
{
    }

    
public override double Area()
    
{
        
return pi * x * x;
    }

}


class Cylinder : Circle
{
    
public Cylinder(double radius, double height)
        : 
base(radius)
    
{
        y 
= height;
    }


    
public override double Area()
    
{
        
return (2 * base.Area()) + (2 * pi * x * y);
    }

}


class TestShapes
{
    
static void Main()
    
{
        
double radius = 2.5;
        
double height = 3.0;

        Circle ring 
= new Circle(radius);
        Cylinder tube 
= new Cylinder(radius, height);

        System.Console.WriteLine(
"Area of the circle = {0:F2}", ring.Area());
        System.Console.WriteLine(
"Area of the cylinder = {0:F2}", tube.Area());
    }

}

 

posted on 2007-04-07 21:13  shengel  阅读(1235)  评论(0)    收藏  举报