面向对象编程(OOP)是一种编程范式,它使用"对象"(可以包含数据和操作这些数据的方法)来设计软件和程序。
C# 是一种面向对象的编程语言,它支持封装、继承和多态这三个面向对象编程的主要特性。
封装
封装是指把对象的状态(属性)和行为(方法)捆绑在一起,并尽可能隐藏对象的内部实现细节。在 C# 中,可以使用类(class)和结构(struct)来创建自定义类型,然后使用这些类型的实例(对象)来存储和操作数据。可以使用访问修饰符(如 private, protected, public)来控制对类的成员的访问。
public class Circle
{
private double radius; // 私有字段
public Circle(double radius) // 构造函数
{
this.radius = radius;
}
public double GetArea() // 公有方法
{
return Math.PI * radius * radius;
}
}
继承
继承是一种关系,表示一个类型(子类)是另一个类型(父类)的特化。在 C# 中,你可以使用 : 符号来让一个类继承另一个类。子类继承了父类的所有公有和受保护的成员。C# 不支持多重继承,但可以通过接口(interface)实现类似的功能。
public class Shape
{
public double X { get; set; }
public double Y { get; set; }
}
public class Circle : Shape
{
public double Radius { get; set; }
}
多态
多态是指一个变量可以引用多种实际类型的对象,而具体引用哪种类型的对象,可以在运行时动态决定。在 C# 中,你可以使用虚方法(virtual method)、抽象方法(abstract method)和接口(interface)来实现多态。
public abstract class Shape
{
public abstract double GetArea();
}
public class Circle : Shape
{
public double Radius { get; set; }
public override double GetArea()
{
return Math.PI * Radius * Radius;
}
}
public class Square : Shape
{
public double Side { get; set; }
public override double GetArea()
{
return Side * Side;
}
}
总体上,面向对象的设计具有:
- 高内聚低耦合
- 代码复用
- 易扩展
- 更符合实际问题域
- 符合单一职责原则