- 抽象类
abstract class
// 定义一个抽象类,不能直接实例化,需要其他类继承并实现全部抽象方法
abstract class Animal {
readonly name; // 只读属性
constructor (name: string) {
this.name = name
}
// 抽象方法
abstract sayName():void
}
// 继承抽象类,并实习抽象方法
class Dog extends Animal {
sayName () {
console.log(`汪汪 ${this.name}`)
}
}
let d = new Dog('bai')
d.sayName()
- 接口
interface
// 定义接口,接口只能描述类的结构,不能有实际的实现
interface Animal {
name: string
sayName():void
}
// 实现接口
class Dog implements Animal {
name
constructor (name:string) {
this.name = name
}
sayName () {
console.log(`汪汪 ${this.name}`)
}
}
let d = new Dog('bai')
d.sayName()