类型修饰符
public
:属性的默认修饰符为public
,实例及其子类可以访问
private
:只能在类的内部被访问
protected
:只能在类及其子类里面被访问
readonly
:只能被赋值一次,之后可读不可写,对于引用类型,内部的属性如果不是可读的,那么是可以修改的
抽象类
- 抽象类不能被实例化
- 抽象类要用
abstract
关键字进行声明 - 抽象类里面的抽象方法和成员子类必须全部实现
- 抽象方法可以没有方法体
- 抽象类就是告知子类你最少应该实现什么方法或应该有什么成员
- 抽象成员也要用
abstract
来声明
abstract class Animal {
abstract behavior(): void
}
class Dog extends Animal {
behavior() {
console.log('running')
}
}
class Fish extends Animal {
behavior() {
console.log('swimming');
}
}
function executeBehavior(animal: Animal) {
animal.behavior()
}
const dog = new Dog()
const fish = new Fish()
executeBehavior(dog)
executeBehavior(fish)