using System;
namespace MyShape
{
public class Shape
{
public virtual void Draw()
{ ;} //虚方法用于图形绘制
}
public class Rectangle : Shape //定义矩形类
{
protected int a;
protected int b; //矩形的边长
public Rectangle(int va, int vb)
{
a = va;
b = vb;
}
public override void Draw() //重载虚方法在屏幕上绘制矩形
{
Console.WriteLine("Rectangle:");
Console.WriteLine("* * * * *");
Console.WriteLine("* *");
Console.WriteLine("* *");
Console.WriteLine("* * * * *");
}
}
public class Square : Rectangle //定义正方形类
{
public Square(int va)
: base(va, va)
{ ;}
public override void Draw() //重载绘制正方形
{
Console.WriteLine("Square");
Console.WriteLine("* * * * *");
Console.WriteLine("* *");
Console.WriteLine("* *");
Console.WriteLine("* *");
Console.WriteLine("* * * * *");
}
}
//定义普通三角形作为其它三角形的基类
public class Triangle : Shape
{
protected int a;
protected int b;
protected int c;
public Triangle(int va, int vb, int vc)
{
a = va;
b = vb;
c = vc;
}
}
//定义直角三角形
public class RectTriangle : Triangle
{
new protected int a;
new protected int b;
public RectTriangle(int va, int vb)
: base(va, vb, (int)(Math.Sqrt(va * va + vb * vb)))
{
a = va;
b = vb;
}
public override void Draw()
{
Console.WriteLine("RectTriangle");
Console.WriteLine("*");
Console.WriteLine("* *");
Console.WriteLine("* * *");
Console.WriteLine("* * * *");
}
}
//定义等腰直角三角形
public class RectEqualTriangle : RectTriangle
{
new protected int a;
public RectEqualTriangle(int va)
: base(va, va)
{
a = va;
}
public override void Draw()
{
Console.WriteLine("RectEqualTriangle");
Console.WriteLine("*");
Console.WriteLine("* *");
Console.WriteLine("* * *");
Console.WriteLine("* * * *");
Console.WriteLine("* * * * *");
}
}
}
C# 多态性例子
最新推荐文章于 2022-11-12 20:14:47 发布