15 类与继承 🏫之继承与多态
在前一章,我们深入探讨了构造函数和属性的定义与使用,以及如何创建一个简单的类。在本章中,我们将继续更进一步,专注于继承
和多态
的概念,这两个特性是面向对象编程的核心,能够使代码更加灵活、可复用,并易于维护。
继承
继承是指一个类可以从另一个类“派生”出新的类。这个新的类称为子类,而被继承的类称为父类(或基类)。通过继承,子类可以获取父类的属性和方法,还可以扩展或重写这些方法,形成一个更具体化的类。
示例:动物类及其子类
我们先定义一个基本的Animal
类,然后创建它的子类Dog
和Cat
,这两种动物将从Animal
类中继承属性和方法。
1 | class Animal { |
在上面的例子中,Dog
和Cat
类从Animal
类继承了name
属性和speak
方法。Dog
和Cat
各自重写了speak
方法,展现了不同的行为,这一点正体现了多态的概念。
多态
多态是指不同类的对象可以通过同一个接口调用各自特有的方法。在TypeScript中,这种特性通过继承
与方法重写实现。我们可以创建一个通用的方法,接受Animal
类型的对象,并调用speak
方法。无论传递的是Dog
还是Cat
对象,该方法都会表现出不同的行为。
示例:使用多态
1 | function animalSpeak(animal: Animal): void { |
在这里,animalSpeak
方法接受一个Animal
类型的参数,并调用其speak
方法。因为dog
和cat
都是Animal
的子类,所以我们能轻松实现不同的行为,而不需要在animalSpeak
方法内部进行类型判断。
继承的优势
- 代码复用:通过继承,子类可以重用父类的代码,减少重复代码。
- 逻辑清晰:通过父类和子类的层级关系,增强代码的组织性,逻辑变得更加清晰。
- 扩展性:可以在不修改已有代码的情况下,增加新的功能和特性。
总结
本章探讨了类
的继承
和多态
两个重要概念。我们通过实例学习了如何创建基类和派生类,并展示了子类如何重写父类的方法来实现多态性。继承使我们能共享代码,提升了可维护性和扩展性。
在下一章中,我们将介绍访问修饰符
,以更好地控制类的属性和方法的可见性及访问权限。通过理解访问修饰符,我们可以增强类的封装性,使我们的代码更加安全、稳定。
15 类与继承 🏫之继承与多态