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#面向对象编程有更深入的理解和掌握。记住哦,编程就像是一场没有终点的旅行,只有不断学习和实践才能发现更多的乐趣和惊喜!加油哦!
热门推荐
子公司可以独立上市吗?
穿牛仔裤导致肚脐眼周围痒的处理方法是什么
探寻后摩尔时代 | 碳基半导体从材料突围
铜葫芦摆放的六大禁忌详解
多汗症用什么药物治疗
植物神经功能紊乱症状与治疗方法是什么
电动车锂电池爆燃之殇:电梯内的生死瞬间与防范之策
种植牙的感觉如何?
资金在DeepSeek概念板块已现分歧 主力与融资资金流向相反
“线上+线下”参与人数81.3万人次 西安交大校园开放日人气爆棚
小红书女性怎么称呼:揭秘新时代女性的潮流文化与个性标签
日常有哪些方法可以保护眼睛视力
巴黎奥运会各国队服设计盘点:传统与现代的完美融合
不同血型人的健康密码
库里与杜兰特:退役后历史地位的争鸣
北海侨港风情街:一碗煲仔粉里的家的味道
来例假头疼吃什么药
新能源汽车渗透率如何定义
楼上漏水,楼下租客怎么办
你对癫痫的N个误解,是时候解开了!
正月二十“补天日” 记得吃三样做三事 传承文化祈福纳祥
2024年中国航空装备行业全景图谱:市场规模超5000亿,六大产业集聚区已形成
带孩子坐飞机怎么买票?3岁孩子该买婴儿票还是儿童票?
多吃虾,有6大好处!尤其是刚刚发现虾身上这个东西,益处颇多!
家暴后受害者心理康复的重要性与措施
孙中山故里旅游区:擦亮金字招牌 吸引八方来客
明朝官员王世贞简介:累官至刑部尚书,卒赠太子少保
生吃蒜头的四大健康益处
钓马口鱼最佳时间是什么时候?
接收文件后,如何表示感谢以体现礼仪