//继承 一个类(子类)可以继承另一个类(父类)的属性和方法
//父类
class Person {
//属性
name: string
gender: string
//构造函数 用于初始化属性
constructor(name: string, gender: string) {
this.name = name
this.gender = gender
}
//方法
sleep(): string {
return `${this.name} 休息中...`
}
}
//子类 - David
class David extends Person {
web: string
constructor(name: string, gender: string, web: string) {
super(name, gender) //调用父类构造函数来确保正确初始化父类
this.web = web
}
eat(): string {
return `${this.name} 正在吃饭...`
}
}
//创建一个 David 类的实例, 并将其赋值给变量 david
let david = new David("邓瑞", "男", "dengruicode.com")
console.log("david:", david)
console.log("web:", david.web)
console.log("eat:", david.eat())
//调用从父类 Person 继承来的属性和方法
console.log("gender:", david.gender)
console.log("sleep:", david.sleep())
//子类 - Luna
class Luna extends Person {
//若子类没有需要初始化的属性,也无需修改从父类继承的属性,则可以省略显式的构造函数
//TypeScript 会自动生成一个默认的构造函数,这个默认的构造函数会调用父类的构造函数
//因为 Luna 继承自 Person,而 Person 的构造函数需要 name 和 gender 参数
//所以当创建 Luna 实例时,需要提供与父类 Person 构造函数相匹配的参数
/*
constructor(name: string, gender: string) {
super(name, gender)
}
*/
}
//创建 Luna 实例
let luna = new Luna("露娜", "女")
console.log("luna:", luna)
5.继承
-- 未经授权禁止转载 --
- 状态: 更新中
- 作者: 邓瑞
- 课时数量: 37 节课
更新中 ...