面向对象
- 定义一个类
class 类名{
名称:数据类型;
constructor(参数:数据类型){
} // 构造函数
方法名():返回值类型{
}
}
省略了 public 关键字
构造函数 实例化的时候触发
- 属性修饰符
用来修饰类里面的属性和方法
public
公有 类里面,类外面,子类,都可以访问
protected
保护 类里面,子类,可以访问
provite
私有 只有在 类里面 可以访问
- 继承的方法
super 是为了初始化父类的构造函数,这个和es2015一样
class 子类名 extends 父类名{
constructor(参数名a:数据类型){
super(参数名a);
}
}
- implements 关键字
class C implements A{
//。。。
}
implements关键字将类A当作一个接口,这意味着类C必须去实现定义在A中的所有方法,无论这些方法是否在类A中有没有默认的实现。同时,也不用在类C中定义super方法。
-
静态属性
在属性名前加一个 static 关键字
调用方法
父类名.属性名
- 静态方法 static
在方法前加一个 static 关键字就是静态方法
静态方法可以调用静态属性
class 类名{
static 静态方法名(){
}
}
调用: 父类.方法名
- 多态(属于继承)
父类定义一个方法不去实现,让继承它的子类去实现,每一个子类有不同的表现
父类
class 父类名{
属性名a:数据类型;
constructor(参数a:数据类型){
}
方法名a(){
}
}
子类
class 父类名 extends 子类{
constructor(参数a:数据类型){
super(属性名a)
}
父类方法名a(){
内容}
}
- 抽象
-
用 abstract 关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现
-
抽象方法只能放在抽象类里面
-
抽象类和抽象方法用来定义标准,父类要求他的子类必须包含父类的某个方法
-
抽象类主要是给子类提供基类,不能被直接实例化
抽象类
abstract class 父类名(){
}
抽象方法
abstract class 父类名(){
abstract 抽象方法名():返回值类型;
}