C#多态性综合举例-形状面积
写一个抽象类Shape
,包含抽象方法getArea()
计算面积。再写Rectangle
矩形类和Circle
圆形类继承Shape
并实现面积计算方法。
namespace T
{
// 父类
abstract class Shape
{
public double x, y;
public Shape(double x,double y)
{
this.x = x;
this.y = y;
}
public abstract double getArea();
}
// 子类1
class Rectangle : Shape
{
public Rectangle(double w, double h) : base(w, h) {
}
public override double getArea()
{
return x * y;
}
}
// 子类2
class Circle : Shape
{
public Circle(double r) : base(r, r) {
}
public override double getArea()
{
return 3.14 * x * x;
}
}
class Test
{
public static void Main()
{
var r = new Rectangle(10, 5);
var c = new Circle(10);
Console.WriteLine($"r area : {
r.getArea()}"); // 50
Console.WriteLine($"c area : {
c.getArea()}"); // 314
}
}
}