TypeScript 第四讲 ———— TypeScript 类中的静态属性 静态方法 多态 和抽象类

静态方法和静态属性

static 关键字用于定义类的数据成员(属性和方法)为静态的,静态成员可以直接通过类名调用。

class StaticMem {  
   static num:number; 
   
   static disp():void { 
      console.log("num 值为 "+ StaticMem.num) 
   } 
} 
 
StaticMem.num = 12     // 初始化静态变量
StaticMem.disp()       // 调用静态方法
StaticMem.num = 12     // 初始化静态变量
StaticMem.disp() // 调用静态方法

静态方法可以直接在类的外面调用,不需要new

typescript中的多态

父类定义一个方法不去实现,让继承他的子类去实现,每一个子类有不同的表现

多态属于继承

实例:

class Animal {

  name: string;
  construtor(name: string){
   this.name = name;
 }
 eat(){
   //具体吃什么?继承他的子类去实现
   console.log("吃的方法")
 }

}


//Dog类继承Animal
class Dog extends Animal{

  construtor(name: string){
   super(name);
 }
 eat(){
   return this.name+"吃粮食";
 }


//Cat类继承Animal
class Cat extends Animal{

  construtor(name: string){
   super(name);
 }
 eat(){
   return this.name+"";
 }

typescript中的抽象类

它是提供其他类继承的基类,不能直接被实例化。

用abstract关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。

abstract抽象方法只能放在抽象类里面

抽象类和抽象方法用来定义标准, 标准: Animal 这个类要求它的子类必须包含eat方法

abstract this Animal{

abstract eat():any;

}

class Dog extends Animal{
  //抽象类的子类必须实现抽象类里面的抽象方法
  constructor(name:string){
    super(name)
  }
   eat(){
     console.log("吃粮食")
   }
}

这节很简单,和java很像。

 

猜你喜欢

转载自www.cnblogs.com/mqflive81/p/11488929.html