封装(Encapsulation)封装是面向对象编程的核心概念之一,它涉及将数据和行为(即方法)捆绑在一起,形成一个封装的单元。在C中,封装主要通过以下方式实现:私有成员(Private Member...
封装是面向对象编程的核心概念之一,它涉及将数据和行为(即方法)捆绑在一起,形成一个封装的单元。在C#中,封装主要通过以下方式实现:
在C#中,使用private关键字声明的成员变量和方法只能在类内部访问。这有助于隐藏实现细节,并确保数据的安全。
public class User
{ private string name; // 私有字段 public string Name { get { return name; } set { name = value; } }
}通过使用get和set访问器,可以在不暴露内部字段的情况下控制对数据的访问。
public class Account
{ private decimal balance; public decimal Balance { get { return balance; } set { if (value < 0) throw new ArgumentOutOfRangeException("value", "Balance cannot be negative."); balance = value; } }
}继承允许创建一个新的类(子类),它基于另一个现有类(基类)的定义。子类继承基类的成员(属性、方法等),并可以添加自己的成员或重写基类的方法。
在C#中,使用冒号:后跟基类名来指定派生类。
public class Employee : Person
{ public decimal Salary { get; set; }
}子类可以使用override关键字重写基类的方法。
public override string ToString()
{ return $"Employee: {Name}, Salary: {Salary}";
}多态允许在运行时根据对象的实际类型来决定调用哪个方法。在C#中,多态通常通过虚方法(Virtual Methods)和抽象类(Abstract Classes)实现。
在基类中,使用virtual关键字声明的方法可以在派生类中被重写。
public virtual void Print()
{ Console.WriteLine("Base class Print method.");
}抽象类包含抽象方法,这些方法在基类中只声明,不实现。
public abstract class Animal
{ public abstract void MakeSound();
}public class Dog : Animal
{ public override void MakeSound() { Console.WriteLine("Woof! Woof!"); }
}通过封装、继承和多态,C#开发者能够构建可维护、可扩展和易于理解的代码。这些特性不仅提高了代码的重用性,而且使得程序更加灵活和强大。掌握这些面向对象的三大特性是高效编程的关键。