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(); // 加菲猫在挣钱啊
上一篇: TypeScript基础类型
下一篇: 获取屏幕分辨率
推荐阅读
-
Python3.0中普通方法、类方法和静态方法的比较
-
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
-
php面向对象中static静态属性和静态方法的调用
-
php面向对象中static静态属性与方法的内存位置分析
-
PowerShell中调用.NET对象的静态方法、静态属性和类方法、类属性例子
-
java基础 静态 static 问在多态中,子类静态方法覆盖父类静态方法时,父类引用调用的是哪个方法?
-
JavaScript中class类的静态方法、普通方法与构造方法详解
-
C#中的静态成员、静态方法、静态类介绍
-
Python3.0中普通方法、类方法和静态方法的比较
-
ES6中Class类的静态方法实例小结