C#面向对象编程三大支柱(六):继承、多态与接口深度解析

一、继承:代码复用的艺术

1.1 继承机制的本质

public class Animal  // 基类
{
    public string Name { get; set; }
    public void Eat() => Console.WriteLine($"{Name}正在进食");
}

public class Cat : Animal  // 派生类
{
    public void Meow() => Console.WriteLine("喵喵叫");
}

// 使用示例
var cat = new Cat { Name = "Tom" };
cat.Eat();  // 继承基类方法
cat.Meow(); // 特有方法
继承的三大特性:
  • 层次结构:单继承体系(C#不支持多类继承)

  • 成员传递:自动获得基类公共/受保护成员

  • 构造链式调用:派生类构造函数必须调用基类构造

    public class Vehicle
    {
        public Vehicle(int wheels) { /*...*/ }
    }
    
    public class Car : Vehicle
    {
        public Car() : base(4) // 必须调用基类构造
        { 
            // 初始化逻辑
        }
    }

1.2 继承进阶技巧

▶ 多层继承体系

▶ 密封类与密封方法
public sealed class StringUtils // 禁止继承
{
    public virtual void Show() { } 
}

public class MyString : StringUtils // 编译错误

二、多态:同一接口的不同实现

2.1 虚方法(Virtual Methods)

public class Shape
{
    public virtual void Draw() => Console.WriteLine("绘制基础图形");
}

public class Circle : Shape
{
    public override void Draw() => Console.WriteLine("绘制圆形");
}

// 运行时多态
Shape shape = new Circle();
shape.Draw(); // 输出"绘制圆形"

2.2 抽象类(Abstract Class)

public a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xienda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值