TypeScript--静态属性,静态方法,抽象类,多态
程序员文章站
2022-07-03 21:58:01
...
静态属性,静态方法
class Per {
public name: string;
public age: number = 20; //静态属性
static sex = "男";
constructor(name: string) {
this.name = name;
}
run():void {
/*实例方法*/
alert(`${this.name}在运动`);
}
static print():void {
/*静态方法 里面只可以调用类里面静态的属性*/
alert("print方法" + Per.sex);
}
}
静态属性,静态方法的调用
var p1 = new Per("张三");
p1.run(); // 实例方法的调用
alert(p1.age); // 普通属性的调用
Per.print(); // 静态方法的调用
alert(Per.sex); // 静态属性的调用
多态
- 多态:父类定义一个方法不去实现,让继承它的子类去实现
- 每一个子类有不同的表现
- 多态属于继承
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
eat(): void {
//具体吃什么 不知道 , 具体吃什么?继承它的子类去实现 ,每一个子类的表现不一样
console.log("吃的方法");
}
}
class Dog extends Animal {
constructor(name: string) {
super(name);
}
eat(): string {
return this.name + "吃????";
}
}
class Cat extends Animal {
constructor(name: string) {
super(name);
}
eat(): string {
return this.name + "吃????";
}
}
抽象类
-
typescript中的抽象类:它是提供其他类继承的基类,不能直接被实例化。
-
用abstract关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。
-
abstract抽象方法只能放在抽象类里面
-
抽象类和抽象方法用来定义标准 。 标准:Animal 这个类要求它的子类必须包含eat方法
abstract class Animal02 {
public name: string;
//抽象类的子类必须实现抽象类里面的抽象方法
constructor(name: string) {
this.name = name;
}
abstract eat(): any; //抽象方法不包含具体实现并且必须在派生类中实现。
run() {
console.log("其他方法可以不实现");
}
}
//抽象类的子类必须实现抽象类里面的抽象方法
class Dog02 extends Animal02 {
constructor(name: string) {
super(name);
}
eat(): string {
return this.name + "吃????";
}
}
class Cat02 extends Animal02 {
constructor(name: string) {
super(name);
}
eat(): string {
return this.name + "吃????";
}
}
上一篇: debian10安装redis
推荐阅读
-
PHP学习记录之面向对象(Object-oriented programming,OOP)基础【接口、抽象类、静态方法等】
-
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
-
php之static静态属性与静态方法实例分析
-
php面向对象中static静态属性和静态方法的调用
-
php面向对象中static静态属性与方法的内存位置分析
-
php静态成员方法和静态的成员属性的使用方法
-
用JavaScript实现静态私有变量,静态私有方法,私有变量,私有方法,公有属性,公有办法
-
PowerShell中调用.NET对象的静态方法、静态属性和类方法、类属性例子
-
java基础 静态 static 问在多态中,子类静态方法覆盖父类静态方法时,父类引用调用的是哪个方法?
-
Java基础知识回顾第四篇 - &和&&|方法重写重载|成员变量静态变量|抽象类接口多态