返回
TypeScript中的类与接口:理解面向对象编程的关键概念
前端
2023-12-28 19:17:30
TypeScript中的类
TypeScript中的类是用来定义对象类型的一种方式。类可以包含属性(变量)和方法(函数)。属性定义了对象的特征,方法定义了对象的行为。
例如,我们可以创建一个手机
类,该类具有以下属性和方法:
class 手机 {
name: string;
color: string;
constructor(name: string, color: string) {
this.name = name;
this.color = color;
}
打电话(phoneNumber: string) {
console.log(`正在拨打${phoneNumber}`);
}
发短信(phoneNumber: string, message: string) {
console.log(`正在发送短信:${message}给${phoneNumber}`);
}
}
我们可以使用手机
类来创建对象,如下所示:
const iPhone = new 手机('iPhone 13 Pro', '深空灰');
iPhone.打电话('10086');
iPhone.发短信('10086', '你好,世界!');
TypeScript中的接口
TypeScript中的接口是一种用来定义对象契约的一种方式。接口定义了对象必须具有的属性和方法,但不包含实现细节。
例如,我们可以创建一个电话
接口,该接口定义了如下属性和方法:
interface 电话 {
name: string;
color: string;
打电话(phoneNumber: string): void;
发短信(phoneNumber: string, message: string): void;
}
我们可以使用电话
接口来定义对象类型,如下所示:
interface 智能手机 extends 电话 {
摄像头数量: number;
电池容量: number;
}
我们可以使用智能手机
接口来创建对象,如下所示:
const SamsungGalaxyS22 = new 智能手机('Samsung Galaxy S22', '黑色', 3, 4500);
SamsungGalaxyS22.打电话('10086');
SamsungGalaxyS22.发短信('10086', '你好,世界!');
继承和多态
继承是面向对象编程中的一种重要概念。继承允许一个类从另一个类继承属性和方法。子类可以覆盖父类的方法,从而实现不同的行为。
例如,我们可以创建一个苹果手机
类,该类继承自手机
类,如下所示:
class 苹果手机 extends 手机 {
操作系统: string;
constructor(name: string, color: string,操作系统: string) {
super(name, color);
this.操作系统 = 系统;
}
打电话(phoneNumber: string) {
super.打电话(phoneNumber);
console.log(`使用FaceTime拨打${phoneNumber}`);
}
}
我们可以使用苹果手机
类来创建对象,如下所示:
const iPhone13Pro = new 苹果手机('iPhone 13 Pro', '深空灰', 'iOS 15');
iPhone13Pro.打电话('10086');
多态是面向对象编程中另一种重要概念。多态允许子类对象以不同的方式响应相同的调用。
例如,我们可以在一个数组中存储不同类型的手机
对象,如下所示:
const 手机数组: 手机[] = [
new 手机('华为Mate 40 Pro', '黑色'),
new 苹果手机('iPhone 13 Pro', '深空灰', 'iOS 15'),
new 三星GalaxyS22('三星Galaxy S22', '黑色', 3, 4500)
];
手机数组.forEach((手机) => {
手机.打电话('10086');
});
当我们调用打电话
方法时,每个手机
对象都会以不同的方式响应。华为Mate 40 Pro
会使用华为的拨号器拨打电话,iPhone 13 Pro
会使用FaceTime拨打电话,而三星Galaxy S22
会使用三星的拨号器拨打电话。
总结
在本篇文章中,我们探讨了TypeScript中的类和接口。类是用来定义对象类型的一种方式,接口是用来定义对象契约的一种方式。继承和多态是面向对象编程中两个重要概念。继承允许一个类从另一个类继承属性和方法,多态允许子类对象以不同的方式响应相同的调用。