继承与多态:消除代码冗余,实现行为重用

需积分: 9 0 下载量 29 浏览量 更新于2024-07-12 收藏 2.54MB PPT 举报
本章节主要探讨了C#中的继承和多态概念。继承是面向对象编程的核心特性之一,它允许一个类(子类)从另一个类(父类)中获取并扩展其成员,如属性和方法。在C#中,使用`class 子类: 父类`的语法实现继承,例如`class SE : Employee`,这意味着SE类继承了Employee类的所有属性和方法,同时也可以添加自己的特定属性,如`Popularity`。 多态性体现在两个或多个不同类型的对象对同一消息(方法调用)的响应可以根据它们的实际类型而异。在这个例子中,虽然SE和PM都属于Employee类的子类,但是它们各自的SayHi()方法可能会有不同的实现,体现出多态性。例如,SE和PM可能在SayHi()方法中根据自身角色(可能是销售经理(PM)或系统工程师(SE))执行不同的操作。 代码中提到的“代码冗余”问题是指在PM和SE类中重复定义了一些共享的属性(如年龄、性别和姓名),这可以通过继承来解决。通过在Employee类中定义这些属性,并让SE和PM类继承这些属性,可以避免代码的重复,提高代码的可维护性和复用性。当创建子类时,只需提供特有的部分,如SE的`Popularity`属性和PM的特定行为。 理解继承的目标包括: 1. **理解继承概念**:子类如何从父类获取属性和方法,以及如何利用这个机制减少代码重复。 2. **实现继承应用**:如模拟汽车行驶的场景,通过继承汽车类来创建特定的车辆类型(如卡车和公共汽车),共享公共行为和特征,但各自保留特有的功能。 理解多态的关键点在于: 1. **重写虚方法**:子类可以通过`override`关键字重写父类的方法,实现多态,即在不同的子类实例上调用相同的方法会产生不同的行为。 2. **区分公共和私有成员**:明确哪些属性和方法是子类可以访问的公共成员,哪些是保留给父类的私有成员。 本章的目的是让学生掌握如何在C#中有效地使用继承和多态,以减少代码重复,增强代码的灵活性和模块化,使得程序设计更加灵活且易于维护。