静态方法和静态属性
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很像。