返回

初探 TypeScript 中的类:揭开面向对象编程的序幕

前端

面向对象编程(OOP)是一种软件设计范式,它将数据和行为组织成对象,而这些对象可以相互协作以完成任务。在 JavaScript 中,类是一种语法结构,它允许您创建对象并定义它们的属性和方法。

类的理解

类是 TypeScript 中用来创建对象的模板。它定义了对象的属性和方法,以及对象的行为。每个类都有一个构造函数,它在创建对象时被调用。构造函数用于初始化对象的属性。

类的创建

要创建一个类,可以使用以下语法:

class Person {
  // 属性
  name: string;
  age: number;

  // 方法
  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

在这个例子中,我们创建了一个名为 Person 的类,它有两个属性:name 和 age,以及一个方法 greet()。

类的成员

类的成员包括属性和方法。属性是对象的特性,而方法是对象可以执行的操作。

类的属性

类的属性可以是公共的、受保护的或私有的。公共属性可以在类的任何地方访问,受保护的属性只能在类及其子类中访问,而私有属性只能在类中访问。

class Person {
  // 公共属性
  name: string;

  // 受保护属性
  protected age: number;

  // 私有属性
  private address: string;

  // 方法
  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

类的构造函数

类的构造函数在创建对象时被调用。它用于初始化对象的属性。

class Person {
  constructor(name: string, age: number, address: string) {
    this.name = name;
    this.age = age;
    this.address = address;
  }

  // 方法
  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

在这个例子中,我们创建了一个名为 Person 的类,它有一个构造函数,用于初始化对象的属性。

类的继承

类可以继承其他类,这意味着子类可以继承父类的属性和方法。

class Employee extends Person {
  // 属性
  salary: number;

  // 方法
  work() {
    console.log(`I am working.`);
  }
}

在这个例子中,我们创建了一个名为 Employee 的类,它继承了 Person 类。Employee 类具有 Person 类的所有属性和方法,以及一个额外的属性 salary 和一个方法 work()。

类的多态

多态是指子类可以以不同的方式实现父类的方法。

class Person {
  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

class Employee extends Person {
  greet() {
    super.greet();
    console.log(`I am an employee.`);
  }
}

class Student extends Person {
  greet() {
    super.greet();
    console.log(`I am a student.`);
  }
}

const person = new Person('John', 30);
const employee = new Employee('Mary', 25);
const student = new Student('Bob', 20);

person.greet();
employee.greet();
student.greet();

在这个例子中,我们创建了三个类:Person、Employee 和 Student。Employee 类和 Student 类都继承了 Person 类。Person 类有一个方法 greet()。Employee 类和 Student 类都覆盖了 greet() 方法,并以不同的方式实现了它。

总结

类是 TypeScript 中用来创建对象的模板。它定义了对象的属性和方法,以及对象的行为。类的成员包括属性和方法。属性是对象的特性,而方法是对象可以执行的操作。类的属性可以是公共的、受保护的或私有的。类的构造函数在创建对象时被调用。它用于初始化对象的属性。类可以继承其他类,这意味着子类可以继承父类的属性和方法。多态是指子类可以以不同的方式实现父类的方法。