c语言编程笔录

首页 >   > 笔记大全

笔记大全

typeScript中的extends关键字怎么使用

更新时间:2023-10-29
## extends关键字的基本使用 在TypeScript中使用`extends`关键字可以实现类的继承。通过继承,一个类可以获得另一个类的属性和行为,而无需重新编写这些代码。下面是一个简单的示例: ```typescript class Animal { name: string; constructor(name: string) { this.name = name; } move(distance: number = 0) { console.log(`${this.name} moved ${distance}m.`); } } class Dog extends Animal { bark() { console.log('Woof! Woof!'); } } const dog = new Dog('Buddy'); dog.bark(); // 输出 "Woof! Woof!" dog.move(10); // 输出 "Buddy moved 10m." ``` 在示例中,我们定义了一个`Animal`类和一个`Dog`类。`Dog`类继承了`Animal`类,并且定义了自己的行为`bark`。我们通过`new`关键字创建了一个`Dog`类的实例,调用`bark`和`move`方法。 ## 子类构造函数 在子类中我们可以重写父类的构造函数,但是在重写的时候我们必须调用`super`方法,这个方法会调用父类的构造函数。下面是一个示例: ```typescript class Animal { name: string; constructor(name: string) { this.name = name; } move(distance: number = 0) { console.log(`${this.name} moved ${distance}m.`); } } class Snake extends Animal { constructor(name: string) { super(name); } move(distance: number = 5) { console.log('Slithering...'); super.move(distance); // 调用父类的move方法 } } const sam = new Snake('Sammy'); sam.move(); // 输出 "Slithering... Sammy moved 5m." ``` 在示例中,我们重写了`Animal`中的`move`方法,`Snake`的`move`方法会先输出`Slithering`,然后调用父类的`move`方法。 ## 子类方法的重写 在子类中我们可以重写父类的方法,当调用这个方法时,会优先调用子类中的方法。下面是一个示例: ```typescript class Animal { name: string; constructor(name: string) { this.name = name; } move(distance: number = 0) { console.log(`${this.name} moved ${distance}m.`); } } class Horse extends Animal { move(distance: number = 45) { console.log('Galloping...'); super.move(distance); } } const tom = new Horse('Tommy'); tom.move(); // 输出 "Galloping... Tommy moved 45m." ``` 在示例中,我们重写了`move`方法,并在其中输出了`Galloping`。在调用`tom.move`时,输出了`Galloping`和`Tommy moved 45m.`。 ## 关于使用extends关键字 使用`extends`关键字可以实现类的继承,这是面向对象编程中的一个关键特性。在继承中,子类可以获得父类的属性和行为,而无需重新编写这些代码。在TypeScript中,我们可以使用`extends`关键字来实现继承,并且可以通过重写方法和构造函数来添加和修改子类的行为。 在使用extends的时候,建议遵循下面的几点: 1. 子类必须调用父类的构造函数,否则会在实例化时出现错误。 2. 如果子类和父类具有相同的方法名,子类的方法会优先调用,可以在子类的方法中通过`super`关键字来调用父类的方法。 3. 注意继承链的深度,过多的继承会导致代码难以维护。 在实践中,extends关键字的使用可以有效地提高代码的可读性和重用性,建议在面向对象编程中广泛使用。