首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]揭秘C#类如何实现面向对象:封装、继承与多态的奥秘

发布于 2025-06-22 10:10:34
0
666

封装封装是面向对象编程的核心原则之一,它涉及将数据和操作数据的方法捆绑在一起,形成一个单元——类。在C中,封装通过以下方式实现:访问修饰符:C提供了四种访问修饰符:public、private、pro...

封装

封装是面向对象编程的核心原则之一,它涉及将数据和操作数据的方法捆绑在一起,形成一个单元——类。在C#中,封装通过以下方式实现:

  • 访问修饰符:C#提供了四种访问修饰符:publicprivateprotectedinternal。这些修饰符用于控制类成员(如字段、方法、属性等)的访问级别。
    • public:允许在任何地方访问。
    • private:只允许在类内部访问。
    • protected:允许在类内部和继承自该类的子类中访问。
    • internal:允许在同一个程序集内部访问。
public class BankAccount
{ private double balance; // 私有字段,外部无法直接访问 public double Balance // 公共属性,提供对私有字段的访问 { get { return balance; } set { balance = value; } } public void Deposit(double amount) { balance += amount; }
}
  • 属性:属性提供了一种封装数据的方法,允许在读取和设置数据时添加逻辑。

继承

继承允许一个类(子类)继承另一个类(基类)的属性和方法。在C#中,继承通过以下方式实现:

  • 类声明:使用冒号(:)后跟基类名称来声明子类。
public class SavingsAccount : BankAccount
{ public void Withdraw(double amount) { if (Balance >= amount) { balance -= amount; } else { throw new InvalidOperationException("Insufficient funds."); } }
}
  • 构造函数:子类可以调用基类的构造函数来初始化继承的成员。
public class SavingsAccount : BankAccount
{ public SavingsAccount(double initialBalance) : base(initialBalance) { }
}

多态

多态允许在运行时根据对象的实际类型来调用方法。在C#中,多态通过以下方式实现:

  • 方法重写:子类可以重写从基类继承的方法,以提供特定的实现。
public class CheckingAccount : BankAccount
{ public override void Withdraw(double amount) { if (Balance >= amount + 2) // 加上额外的费用 { balance -= amount + 2; } else { throw new InvalidOperationException("Insufficient funds."); } }
}
  • 接口:接口定义了方法、属性、事件等的签名,但不提供实现。类可以实现多个接口。
public interface IAccount
{ double Balance { get; } void Deposit(double amount); void Withdraw(double amount);
}
public class BankAccount : IAccount
{ // 实现接口定义的方法
}

通过封装、继承和多态,C#类能够实现面向对象编程的强大功能,包括代码重用、可扩展性和灵活性。这些特性使得C#成为开发复杂、可维护应用程序的理想语言。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流