7.7 C# 继承和多态


7.7.1 基类和派生类

在C#中,继承是一种面向对象编程的核心概念,它允许一个类(称为派生类或子类)继承另一个类(称为基类或父类)的属性和方法。

基类

  • 基类是提供基础结构和功能的类。
  • 基类可以是抽象的,也可以是具体的。

派生类

  • 派生类是从基类继承属性和方法的类。
  • 派生类可以添加新的属性和方法,或覆盖基类中的方法。
声明基类和派生类
public class BaseClass
{
    public void Display()
    {
        Console.WriteLine("Display method of BaseClass.");
    }
}

public class DerivedClass : BaseClass
{
    public new void Display()
    {
        Console.WriteLine("Display method of DerivedClass.");
    }
}

在这个例子中,DerivedClass 继承自 BaseClassDerivedClass 有一个 Display 方法,它覆盖了基类中的 Display 方法。

使用基类和派生类
BaseClass baseObj = new BaseClass();
DerivedClass derivedObj = new DerivedClass();

baseObj.Display();  // 输出: Display method of BaseClass.
derivedObj.Display();  // 输出: Display method of DerivedClass.

7.7.2 多态

多态是另一个面向对象编程的核心概念,它允许你以一种统一的方式对待不同类的对象。在C#中,多态通常是通过方法重写(Override)和方法隐藏(New)实现的。

方法重写

  • 在派生类中,方法重写允许改变从基类继承来的方法的行为。

方法隐藏

  • 使用 new 关键字,派生类可以隐藏继承的方法。
多态的示例
public class BaseClass
{
    public virtual void Show()
    {
        Console.WriteLine("Show method of BaseClass.");
    }
}

public class DerivedClass : BaseClass
{
    public override void Show()
    {
        Console.WriteLine("Show method of DerivedClass.");
    }
}

在这个例子中,DerivedClass 重写了 BaseClassShow 方法。

使用多态
BaseClass baseObj = new BaseClass();
DerivedClass derivedObj = new DerivedClass();

BaseClass refObj = derivedObj;  // 多态的使用

baseObj.Show();  // 输出: Show method of BaseClass.
derivedObj.Show();  // 输出: Show method of DerivedClass.
refObj.Show();  // 输出: Show method of DerivedClass.

在这个例子中,即使 refObjBaseClass 类型的引用,但它实际上指向的是 DerivedClass 的对象,所以调用的是 DerivedClassShow 方法。

注意事项
  • 使用 virtual 关键字声明基类方法,允许在派生类中被重写。
  • 使用 override 关键字在派生类中重写基类的方法。
  • 使用 new 关键字在派生类中隐藏继承的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值