C#面向对象编程三部曲:封装、继承与多态,你真的玩转了吗?
创作时间:
作者:
@小白创作中心
C#面向对象编程三部曲:封装、继承与多态,你真的玩转了吗?
引用
CSDN
1.
https://m.blog.csdn.net/z_344791576/article/details/142844476
嘿,编程小达人们!今天咱们要深入探讨C#面向对象编程的三大基石——封装、继承与多态。想象一下,它们就像是编程世界的魔法三件套,每一样都藏着无穷的魅力与力量。那么,你准备好揭开它们的神秘面纱,掌握这三大魔法的奥秘了吗?
第一幕:封装——守护秘密的小精灵
封装,就像是给你的代码穿上了一层神秘的外衣,让外界只能看到你想展示的部分,而隐藏起那些敏感和复杂的内部实现。这样做的好处多多,不仅保护了数据的安全,还简化了外部对对象的操作。
示例代码:
public class BankAccount
{
// 私有字段,外部无法直接访问
private double balance;
// 公共属性,提供对私有字段的访问
public double Balance
{
get { return balance; }
set
{
if (value < 0)
{
throw new ArgumentException("Balance cannot be negative.");
}
balance = value;
}
}
// 存款方法
public void Deposit(double amount)
{
if (amount <= 0)
{
throw new ArgumentException("Deposit amount must be positive.");
}
balance += amount;
}
// 取款方法(略去具体实现,仅作示例)
// ...
}
深度分析:
- 在
BankAccount
类中,balance
字段被声明为private
,这意味着它只能在类内部被访问和修改,从而保护了账户余额的安全。 - 通过公共属性
Balance
的get
和set
访问器,我们允许外部代码安全地获取和设置账户余额,同时可以在set
访问器中添加验证逻辑,确保余额不会变为负数。
第二幕:继承——站在巨人的肩膀上
继承,就像是你站在了前人的肩膀上,可以直接使用他们已经创造好的东西,并在此基础上进行扩展和创新。在C#中,继承允许我们定义一个类(子类)来继承另一个类(父类)的属性和方法,从而实现代码的重用和扩展。
示例代码(假设有一个Animal
父类和它的Dog
子类):
public class Animal
{
public void Eat()
{
Console.WriteLine("This animal is eating.");
}
}
public class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Woof!");
}
}
// 使用
Dog myDog = new Dog();
myDog.Eat(); // 继承自Animal的方法
myDog.Bark(); // Dog类特有的方法
深度分析:
Dog
类通过冒号:
操作符继承了Animal
类,因此它自动获得了Animal
类的所有公共和受保护成员(包括方法和属性)。- 在
Dog
类中,我们添加了一个新的方法Bark
,这是Dog
类特有的行为。
第三幕:多态——千变万化的魔法
多态,是面向对象编程中最令人着迷的特性之一。它允许我们以统一的接口处理不同的对象,这些对象在运行时可以有不同的表现形式。多态主要通过抽象类、接口和虚方法来实现。
示例代码(使用抽象类和虚方法):
public abstract class Shape
{
public abstract void Draw();
}
public class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a circle.");
}
}
public class Rectangle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a rectangle.");
}
}
// 使用
Shape shape;
shape = new Circle();
shape.Draw(); // 输出:Drawing a circle.
shape = new Rectangle();
shape.Draw(); // 输出:Drawing a rectangle.
深度分析:
- 我们定义了一个抽象类
Shape
和一个抽象方法Draw
,这意味着Shape
类不能直接实例化,且Draw
方法没有具体实现。 Circle
和Rectangle
类继承了Shape
类,并提供了Draw
方法的具体实现。- 通过将
shape
变量声明为Shape
类型,但赋予它Circle
或Rectangle
的实例,我们展示了多态的魔力:尽管shape
在编译时的类型是Shape
,但在运行时它可以根据实际赋值的对象类型调用不同的Draw
方法。
结语
好了,亲爱的编程小达人们,今天的面向对象编程三部曲就到这里啦!我们深入探讨了封装、继承与多态的奥秘,并通过示例代码展示了它们在实际编程中的应用。希望这次探险能让你对C#面向对象编程有更深入的理解和掌握。记住哦,编程就像是一场没有终点的旅行,只有不断学习和实践才能发现更多的乐趣和惊喜!加油哦!
热门推荐
中央企业专业化整合走深走实 引领行业整体高质量发展
优化地下管线 增强城市韧性(金台视线·关注城市更新·韧性篇)
如何捕捉趋势转变?交易转向分析的四大高效技巧
坐有坐相!正确坐姿7点不再腰痠背痛
中国人寿总裁蔡希良:优化养老金融政策体系,提升第二第三支柱吸引力
桂圆对身体的作用
崩溃了!10所压力Max的美国大学城:自己选的学校,跪着也要读完
悼词写作指南:特点、结构与范例
上海这条道路快速化工程或年内全面开工,长22公里,投资168.9亿
光线运用在摄影中的重要性
掌握“角度”和“位置”,拓展摄影表现的广度
悬浮滑板:未来的出行方式还是科技玩具?
孕妇能吃洋葱吗?营养师给出专业解答
角膜塑形镜(OK镜)是怎样矫正视力的?
药物高通量筛选系统促进软骨再生
什么是政府强调的“好房子”,新材料如何助力房产升级?
交房验收标准及注意事项,确保房屋质量与面积满足购房者需求
新手炒股应该选择多大的止损和止盈点?
人机交互设计的用户体验优化
掼蛋游戏规则与技巧全攻略
AI法官的算法如何设计
蛋挞的热量有多少
食道癌手术后能活几年?这些因素影响生存期
你卖的废纸箱1斤多少钱?济南市场最新调查
奔豚症的临床表现
TIA博途V17 DB块导出与项目管理指南
核桃栽种的方法与注意事项(掌握这些关键点,让你的核桃树生长茁壮)
揭秘旋转世界的秘密:角加速度的单位及其应用
川剧变脸:传统艺术的魅力与情感表达之旅
2025公考体检饮食指南:家长必读的科学“一日三餐”安排