ftp 迁移 网站,建筑公司商标logo设计,wordpress 自定义字段列表,推广营销计划定义
是面向对象程序设计#xff08;OOP#xff09;实现信息封装的基础 类是一种用户定义的引用数据类型#xff0c;也称类类型 JavaScript的class,虽然本质是构造函数#xff0c;但是使用起来已经方便了许多#xff0c;js中没有加入修饰符和抽象类等特性 ts的class支持面…定义
是面向对象程序设计OOP实现信息封装的基础 类是一种用户定义的引用数据类型也称类类型 JavaScript的class,虽然本质是构造函数但是使用起来已经方便了许多js中没有加入修饰符和抽象类等特性 ts的class支持面向对象的所有特性比如类接口等
使用
1、基础使用
基础内容属性、方法、构造函数类实例化时调用可以为类的对象分配内存
class Car{engine:string;// 构造函数constructor(engine:string){this.engine engine}//方法disp():void{console.log(this.engine)}
}继承
Dog是一个 派生类它派生自 Animal 基类派生类通常被称作子类基类通常被称作 超类
Dog类继承了Animal类因此实例dog也能够使用Animal类move方法
class Animal {move(distanceInMeters: number 0): void {console.log(animal moved ${distanceInMeters}m.)}
}class Dog extends Animal {bark(): void {console.log(Woof! Woof!)}
}const dog new Dog()
dog.move(10)
dog.bark()方法重写
在子类中定义和父类相同名字的方法即可实现方法的重写可以通过super调用父类的方法
class PrintA {printData(): void {console.log(父类的print方法)}
}class PrintB extends PrintA {printData(): void {console.log(子类的print方法)super.printData() // 调用父类的方法}
}let printTest new PrintB()printTest.printData()修饰符 公共public可以自由的访问类程序里定义的成员不加修饰符默认是public 受保护 protect除了在该类的内部可以访问还可以在子类中仍然可以访问 和私有修饰符很相似实例对象同样不能访问受保护的属性但是在子类中仍然可以访问 私有private只能够在该类的内部进行访问 只能够在该类的内部进行访问实例对象和子类并不能够访问 只读修饰符 readonly 只读属性必须在声明时或构造函数里被初始化只能修饰属性
静态属性
这些属性存在于类本身上面而不是类的实例上通过static进行定义访问这些属性需要通过 类型.静态属性 的这种形式访问 静态属性能被静态方法访问非静态方法无法访问静态属性和方法
get set 抽象类
使用abstract关键字定义的类 不能被实例化 可以被继承继承的类需要实现抽象类的方法 使用abstract定义的属性为抽象属性 使用abstract定义的方法为抽象方法
abstract class PrintA {aName: string;constructor(param?: string) {this.aName param}abstract getName() //抽象方法 只是声明不能实现}class PrintB extends PrintA {constructor(name: string) {super()this.setName(name)}getName() {console.log(this.aName)}setName(name: string) {this.aName name}
}
let test new PrintB(123)
test.getName()