1、类
class Animal { // 大括号
name: string; //属性加上类型 类似单独声明变量 let name:string,只是不用let。es6的class属性不用在这里写出来。在constructor中有即可
constructor(name){ // 构造函数
this.name = name;
}
run(){ //方法 类似单独声明方法 function run(){}只是不用function
console.log(`${this.name} is running`);
}
}
const cat = new Animal('miao');
cat.run()
2、继承
class Dog extends Animal { //只需extends 属性、构造函数和方法都会继承过来
bark(){//可以新添加属性
console.log(`${this.name} is barking`)
}
}
const doudou = new Dog('doudou');
doudou.run();
doudou.bark();
3、继承 重写
class Cat extends Animal{
constructor(name){
super(name)
}
run(){
console.log('Meo,,,,')
super.run()
}
}
const mimi= new Cat('mimi')
mimi.run();
4 、ts属性方法修饰符,默认(不写)是public,还有private、protect和static
public 在实例或子类实例上可读写
private 在实例上不可读写,不可被继承
readonly 实例或子类实例可读
protected 子类可继承,可以在方法中使用,但不可在实例和子类实例上访问
static 类上的属性或方法 static age = 18;