ts 之 定义类 Class基础( 继承、多态、修饰符 public、静态属性、静态属性、抽象类)
// 定义一个基类
class Animal {
public name: string;
public constructor(name: string) {
this.name = name;
}
public move(distanceInMeters: number): void {
console.log(`${this.name} moved ${distanceInMeters}m.`);
}
}
// 继承基类
class Dog extends Animal {
public bark(): void {
console.log('Woof! Woof!');
}
}
// 使用
const dog = new Dog('Buddy');
dog.bark();
dog.move(10);
// 多态示例
function createNoise(animal: Animal) {
if (animal instanceof Dog) {
animal.bark();
} else {
animal.move(10);
}
}
// 使用多态
createNoise(new Dog('Max')); // 输出: Woof! Woof!
createNoise(new Animal('Cat')); // 输出: Cat moved 10m.
// 使用public修饰符
class AnimalWithPrivateFields {
public name: string;
constructor(name: string) {
this.name = name;
}
}
// 使用静态属性
class AnimalWithStaticProperty {
static numOfLegs: number = 4;
}
// 使用抽象类
abstract class AbstractAnimal {
abstract makeNoise(): void;
}
// 继承抽象类
class DogWithAbstract extends AbstractAnimal {
makeNoise() {
console.log('Woof!');
}
}
// 使用抽象类
const dogWithAbstract = new DogWithAbstract();
dogWithAbstract.makeNoise();
这段代码展示了如何在TypeScript中使用类和继承,包括如何定义一个基类,如何创建子类,以及如何使用多态和不同的访问修饰符。同时,还展示了如何定义静态属性以及创建抽象类和抽象方法。这些是面向对象编程中的基本概念,对于学习TypeScript和JavaScript的开发者来说,具有很好的教育价值。
评论已关闭