类与继承
TS 的类和 JS 的 class 基本一致,增加了类型标注和访问修饰符(public/private/protected),让面向对象更严格。
类的基本结构
属性声明时标类型,构造函数初始化;方法写返回类型。
访问修饰符
- public:默认,任何地方可访问
- private:只有类内部能访问
- protected:类内部和子类能访问
- readonly:只读,初始化后不能改
继承与抽象类
extends 继承;abstract class 定义抽象类,abstract 方法子类必须实现。
代码示例
abstract class Animal {
constructor(protected name: string) {}
abstract makeSound(): void; // 子类必须实现
}
class Dog extends Animal {
makeSound(): void {
console.log(`${this.name} 汪汪叫`);
}
}
class Cat extends Animal {
private lives = 9; // 私有属性
makeSound(): void {
console.log(`${this.name} 喵喵叫`);
}
}
const dog = new Dog("旺财");
dog.makeSound();