欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Typescript中的类的静态属性,静态方法,抽象类,多态

程序员文章站 2022-07-03 21:57:37
...

类的静态属性,静态方法, 

class People { 
  public name: string;
  static age: number = 99;
  constructor(name: string,age: number) {
    this.name = name;
  }
  run() { // 实例方法
    console.log(`${this.name}在跑步`)
  }
  work() {  // 实例方法
    console.log(`${this.name}在工作`)
  }
  static print() { // 静态方法; 在该方法里没法直接调用当前类的非静态属性
    console.log("我是静态方法,"+ this.age);
  }
}
var p = new People("张飞",99);
p.run(); // 实例方法通过对象调用
p.work(); // 实例方法通过对象调用
People.print(); //  我是静态方法,99

静态属性,静态方法

class People { 
  public name: string;
  static age: number = 99;
  constructor(name: string,age: number) {
    this.name = name;
  }
  run() { // 实例方法
    console.log(`${this.name}在跑步`)
  }
  work() {  // 实例方法
    console.log(`${this.name}在工作`)
  }
  static print() { // 静态方法; 在该方法里没法直接调用当前类的非静态属性
    console.log("我是静态方法,"+ this.age);
  }
}
var p = new People("张飞",99);
p.run(); // 实例方法通过对象调用
p.work(); // 实例方法通过对象调用
People.print(); //  我是静态方法,99

// 多态:父类定义一个方法不去实现,让继承它的子类去实现,每一个子类有不同的表现;多态也是继承的一种表现;

class Animal { 
  name: string;
  constructor(name: string) { 
    this.name = name;
  }
  eat() { } // 具体吃什么,不知道;具体吃什么要靠继承它的子类去实现,每一个子类表现不一样;
}

class Dog extends Animal{ 
  constructor(name:string){ 
    super(name)
  }
  eat() {
    return this.name + '吃肉'
   }
}
class Cat extends Animal { 
  constructor(name: string) {
    super(name)
  }
  eat() { 
    return this.name + "吃老鼠"
  }
}
var d = new Dog("哮天犬");
console.log(d.eat())
var c = new Cat("加菲猫");
console.log(c.eat())

// ts中的抽象类:它是提供其他类继承的基类,不能直接实例化;

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

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

abstract class Animal { 
  public name: string;
  constructor(name: string) {
    this.name = name;
   }
  abstract eat(): void;  // 抽象方法不包含具体实现;并且在派生类中必须要实现;
  public work() { // 
    console.log(`${this.name}在工作啊`);
  }
}

class Dog extends Animal { 
  constructor(name: string) {
    super(name);
   }
  eat(): string {
    return `${this.name}---在吃饭`
  }
  public work() { // 
    console.log(`${this.name}在挣钱啊`);
  }
}
var d = new Dog("加菲猫");
console.log(d.eat());
d.work(); // 加菲猫在挣钱啊

 

相关标签: js typescript