C#面向对象的基本原则包括封装、继承和多态。以下是这些原则的详细说明。
- 封装
封装是一种将对象的状态数据和行为操作包装在一起的方式。这使得对象的内部实现细节对外部用户不可见。在C#中,我们使用访问修饰符来实现封装。
例如,下面是一个示例代码:
public class Person
{
private string name; // 私有字段
public void SetName(string newName) // 公共方法用于设置名字
{
name = newName;
}
public string GetName() // 公共方法用于获取名字
{
return name;
}
}
在上面的代码中,name
字段被声明为 private
访问修饰符,这意味着它只能在同一个类中被访问。为了访问这个字段,我们需要使用 SetName()
和 GetName()
方法,这些方法被声明为 public
访问修饰符,这意味着它可以从该类的任何其他地方调用。这就是封装的一个例子。
- 继承
继承是一种从现有类派生出新类的方式。新类将继承原始类的属性和方法,并且还可以添加新的属性和方法。 在C#中,我们使用冒号 :
来实现继承。
例如,下面是一个示例代码:
public class Animal
{
public virtual void Talk() // 使用虚方法使继承类能够重写
{
Console.WriteLine("I am an animal.");
}
}
public class Dog : Animal // 继承自Animal类
{
public override void Talk() // 重写虚方法
{
Console.WriteLine("Woof!");
}
}
在上面的代码中,Dog
类继承自 Animal
类。它重写了 Talk()
方法,使得 Dog
对象调用这个方法时打印出 "Woof!"。这是一个继承的例子。
- 多态
多态是一种不同对象调用相同方法时产生不同行为的方式。这是由于这些对象具有不同的实现(继承了相同的基类)。在C#中,我们使用虚方法和抽象类来支持多态性。
例如,下面是一个示例代码:
public abstract class Shape // 声明一个抽象类
{
public abstract double Area(); // 抽象方法用于计算面积
}
public class Square : Shape // 继承自Shape类
{
private double side;
public Square(double s)
{
side = s;
}
public override double Area() // 重写抽象方法
{
return side * side;
}
}
public class Circle : Shape // 继承自Shape类
{
private double radius;
public Circle(double r)
{
radius = r;
}
public override double Area() // 重写抽象方法
{
return Math.PI * radius * radius;
}
}
在上面的代码中,Shape
是一个抽象类,有一个抽象方法 Area()
来计算图形的面积。Square
和 Circle
类继承自 Shape
类,并重写了 Area()
方法来计算正方形和圆形的面积。使用多态的时候,我们将 Shape
类作为参数类型来调用这个 Area()
方法,任何从 Shape
类继承的类都可以被传递进去,产生不同的行为。
以上是C#面向对象的基本原则的详细说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 面向对象的基本原则 - Python技术站