classPerson{
public name:string;static age:number;//静态属性constructor(n:string){
this.name = n
}getName():void{
//实例方法console.log(`my name is ${
this.name}`)}staticgetAge(){
//静态方法,不能直接调用类里面的属性,可以调用静态属性console.log(`静态方法,获取age:${
this.age}`)}}var p =newPerson('小明')
p.getName()//my name is 小明console.log(p.name);//小明console.log(Person.age);//undefined
Person.age =22
Person.getAge()//静态方法,获取age:22
多态
父类定义一个方法不去实现,让继承它的子类去实现,每个子类都不同的表现
多态属于继承
classAnimal{
name:stringconstructor(n:string){
this.name = n
}eat(){
console.log('吃东西');}}classdogextendsAnimal{
constructor(n:string){
super(n)}eat(){
//重写Animal里的eat方法console.log(`${
this.name}吃肉`);}}classcatextendsAnimal{
constructor(n:string){
super(n)}eat(){
console.log(`${
this.name}吃鱼`);}}let d =newdog('小狗狗')
d.eat()//小狗狗吃肉let c =newcat('小花猫')
c.eat()//小花猫吃鱼