一、普通对象
通过class创建对象,对象里属性、普通方法和有构造方法,然后用extends继承
// 创建一个对象,并定义其属性和方法。 class Person {name: stringage: number// 构造函数 constructor(name: string, age: number) {this.name = namethis.age = age}// 普通方法 speak() {console.log(`我的名字叫:${this.name} 年龄是 ${this.age} 岁了`)} } // 继承 class Student extends Person {// 构造函数 constructor(name: string, age: number) {super(name, age)}// 普通方法 study() {console.log(`${this.name} 正在学习`)} } const student = new Student('小明', 18) student.speak()
二、抽象类
抽象类使用修饰词abstract定义,是一种无法被实例化的类,专门用于定义类的结构和行为,类中可以写抽象方法,也可以写普通方法。
主要用来为其派生类提供一个基础结构,要求其派生类必须实现其中的抽象方法,可以被继承。
// 抽象类 abstract class Animal {constructor(name: string) {this.name = name}name: string// 抽象方法, 没有实现体,即没有大括号{}abstract speak(): void// 普通方法 eat() {console.log(`${this.name} 正在吃东西`)} }
class Dog extends Animal {constructor(name: string) {super(name)}// 抽象方法的实现,派生类Dog是抽象类Animal的子类,所以必须实现speak方法,即派生类必须实现其中的抽象方法// 抽象类Animal的普通方法eat不用必须实现 speak() {console.log(`${this.name} 正在汪汪叫`)} }