csharp 面向对象编程
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Shape { /** * 抽象形状类 */ public abstract class Shape { private int edge; //构造函数 public Shape(int edge) { this.edge = edge; } //抽象类实现的方法,子类可以重用 public int GetEdge() { return this.edge; } //抽象方法,子类必须重写,并在声明上加上override public abstract int CalcArea(); } /** * 三角形类,继承自形状类 */ public class Triangle : Shape { private int bottom; private int height; //构造函数,构造的同时调用父类指定构造器 public Triangle(int bottom, int height) : base(3) { this.bottom = bottom; this.height = height; } //重写同名方法 public override int CalcArea() { return this.bottom * this.height / 2; } } /** * 矩形类,继承自形状类 */ public class Rectangle : Shape { private int bottom; private int height; //构造函数,构造的同时调用父类指定构造器 public Rectangle(int bottom, int height) : base(4) { this.bottom = bottom; this.height = height; } //重写同名方法 public override int CalcArea() { return this.bottom * this.height; } } class Program { static void Main(string[] args) { //测试,可用父类映射子类 Shape triangle = new Triangle(4, 5); Console.WriteLine(triangle.GetEdge()); Console.WriteLine(triangle.CalcArea()); Shape rectangle = new Rectangle(4, 5); Console.WriteLine(rectangle.GetEdge()); Console.WriteLine(rectangle.CalcArea()); } } }