使用继承与多态消除代码冗余

需积分: 9 0 下载量 198 浏览量 更新于2024-07-12 收藏 2.54MB PPT 举报
"巧妙利用继承和多态来减少代码冗余" 在编程中,代码冗余是一个常见的问题,它降低了代码的可读性和可维护性。为了优化代码结构,我们可以利用面向对象编程中的继承和多态特性。在C#中,这两个概念是减少重复代码并提高代码复用的有效手段。 **继承** 是面向对象编程中的一个核心概念,它允许一个类(子类)从另一个类(父类)继承属性和方法。这样,子类就可以拥有父类的特性,并且可以添加自己的独特属性和方法。在C#中,我们使用 `:` 符号来表示继承,如 `class 子类 : 父类`。这样做的好处是,我们可以将共享的代码集中到一个父类中,子类只需要关注自己的特定功能,如在示例中,`Employee` 类作为父类,`PM` 和 `SE` 作为其子类,分别代表项目经理和软件工程师,它们共享了如年龄、性别等属性,而各自的特殊属性(如人气值或专业技能)则在子类中定义。 **多态** 是指同一种行为在不同的对象上有不同的表现形式。在C#中,通过使用 `virtual` 和 `override` 关键字可以实现方法的重写,从而实现多态。当父类引用指向子类对象时,调用的方法是子类中重写过的版本,而不是父类的版本。例如,`Employee` 类中的 `SayHi()` 方法被声明为 `public virtual`,这意味着子类可以覆盖这个方法,提供自己的实现。在循环中,我们可以通过父类引用遍历所有员工(包括不同类型的员工),调用 `SayHi()` 方法,无需进行类型判断,这就是多态的应用,简化了代码,提高了可扩展性。 在实际应用中,例如模拟汽车行驶的例子,我们可以创建一个 `Car` 类作为父类,包含如刹车、行驶等共性行为,然后创建 `Truck` 和 `Bus` 作为子类,它们继承 `Car` 类,并添加各自的特有行为,如卸货、拉货、载重、货舱、载客量、客舱等。通过这种方式,我们有效地避免了代码的重复,并且在需要添加新的汽车类型时,只需创建新的子类并重写必要的方法即可。 通过继承和多态,我们可以构建层次化的类结构,使得代码更加模块化,易于维护和扩展。这不仅可以减少代码冗余,还可以提高代码的复用性,使程序设计更加灵活和高效。在编写代码时,应该尽可能地利用这些面向对象的特性,以提升代码质量。