using System;
namespace testClassApp
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(
string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
double len =
2.5;
double wid =
3.0;
double rad =
4.1;
Rectangle aRect =
new Rectangle();
aRect.length =
len;
aRect.width =
wid;
Circle aCirc =
new Circle (rad);
Console.WriteLine ("Area of Rect is:{0}",aRect.Area ());
Console.WriteLine ("Area of Rect is:{0}",aRect.Area (
2));
Console.WriteLine ("Area of Circ is:{0}",aCirc.Area ());
}
}
abstract class Shape
//抽象基类,不可实例化
{
public const double pi=
3.14;
//常量
protected double x, y;
//私有,可继承变量
public Shape()
//默认构造函数
{
x=y=
0;
}
public Shape(
double x,
double y)
//带参数构造函数
{
this.x =
x;
this.y =
y;
}
public abstract double Area();
//抽象方法,需重载
}
class Rectangle: Shape
{
public Rectangle():
base(){}
public Rectangle(
double x,
double y):
base(x,y){}
//使用基类构造函数
public double Area()
//函数重载
{
return (x*
y);
}
public double Area(
double x)
//函数重载
{
return (x*
x);
}
public double length
//属性:矩形长度
{
get
{
return x;
}
set
{
if (value>
0){x =
value;}
}
}
public double width
//属性:矩形宽度
{
get
{
return y;
}
set
{
if (value>
0){y =
value;}
}
}
}
class Ellipse: Shape
{
public Ellipse(
double x,
double y):
base(x,y){}
//使用基类Shape的构造函数
public override double Area()
//函数重载
{
return pi*x*
y;
}
}
class Circle: Ellipse
{
public Circle(
double r):
base(r,
0){}
//使用基类Ellipse的构造函数
public override double Area()
//函数重载
{
return pi*x*
x;
}
}
}
转载于:https://www.cnblogs.com/luyuxibaby/p/5569008.html
相关资源:C#learning class from mountains