TypeScript基础知识:类和继承

        TypeScript 是一种静态类型的编程语言,它在 JavaScript 的基础上增加了类型系统。其中,类和继承是面向对象编程中的重要概念。本文将深入介绍 TypeScript 中的类和继承,并通过示例代码帮助读者更好地理解这些概念。

一、类的定义

        在 TypeScript 中,可以使用 class 关键字来定义一个类。类可以包含属性和方法,并且可以通过实例化来创建对象。

class Animal {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  sayHello() {
    console.log(`Hello, I'm ${this.name}`);
  }
}

const cat = new Animal("Tom");
cat.sayHello(); // 输出:Hello, I'm Tom

二、继承

        继承是面向对象编程中的重要特性,它允许我们创建一个新类,并从现有的类中派生出新的类。在 TypeScript 中,可以使用 extends 关键字来实现继承。

class Dog extends Animal {
  breed: string;
  constructor(name: string, breed: string) {
    super(name);
    this.breed = breed;
  }
  bark() {
    console.log("Woof!");
  }
}

const dog = new Dog("Bobby", "Labrador");
dog.sayHello(); // 输出:Hello, I'm Bobby
dog.bark(); // 输出:Woof!

三、方法的重写

        子类可以重写父类中的方法,以适应自己的特定需求。在 TypeScript 中,使用 override 关键字来标记方法的重写。

class Cat extends Animal {
  override sayHello() {
    console.log("Meow!");
  }
}

const cat = new Cat("Kitty");
cat.sayHello(); // 输出:Meow!

四、访问修饰符

        TypeScript 提供了三种访问修饰符:public、private 和 protected。它们用于控制类成员的可访问性。

  • public:默认的访问修饰符,表示成员可以在类内部和外部被访问。
  • private:表示成员只能在类内部被访问。
  • protected:表示成员可以在类内部和派生类中被访问。
class Person {
  public name: string;
  private age: number;
  protected gender: string;

  constructor(name: string, age: number, gender: string) {
    this.name = name;
    this.age = age;
    this.gender = gender;
  }

  sayHello() {
    console.log(`Hello, I'm ${this.name}`);
  }
}

const person = new Person("Alice", 25, "female");
console.log(person.name); // 可以访问
console.log(person.age); // 错误:私有属性不能被访问
console.log(person.gender); // 错误:受保护属性不能被访问
person.sayHello(); // 输出:Hello, I'm Alice

五、抽象类

        抽象类是一种不能被实例化的类,它主要用于作为其他类的基类。在 TypeScript 中,可以使用 abstract 关键字来定义抽象类。

abstract class Shape {
  abstract getArea(): number;
}

class Rectangle extends Shape {
  constructor(private width: number, private height: number) {
    super();
  }

  override getArea() {
    return this.width * this.height;
  }
}

const rectangle = new Rectangle(10, 5);
console.log(rectangle.getArea()); // 输出:50

总结


        在本文中,我们深入探讨了 TypeScript 中的类和继承。我们了解了如何定义类、继承现有类、重写方法以及使用访问修饰符和抽象类。这些概念是面向对象编程中的基础,掌握它们将使您能够更好地构建可维护和可扩展的应用程序。

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大宝贱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值