graph TB
A[类]  
A --> B(1 继承)
A --> C(2 修饰符) -->D(public)
C -->E(protected) 
C -->F(private)
C -->G(readonly)
A -->H(3 静态属性)
A -->I(4 静态方法)
A -->J(5 实例方法)
A -->K(6 多态)
A -->L(7 抽象类)
A -->O(8 存取器)
style A fill:#2ff,fill-opacity:0.1,stroke:#faa,stroke-width:4px,color:blue

一 类的继承

继承关键字 extends super


class Student {
    name:string = '';

    constructor(name:string){
        this.name = name;
    }
}

class Xiaoming extends Student{

    constructor(name:string){
        super(name);
    }

    public say():void{
        console.log('我的名字是' + this.name); 
    }
}

let student_xiaoming = new Xiaoming('张小明');

student_xiaoming.name  // 张小明
student_xiaoming.say() // 我的名字是张小明

二 修饰符

public 公有类型:当前类、子类、类外部均可访问。
protected 保护类型:当前类、子类可以访问,类外部无法访问。
private 私有类型: 仅当前类可以访问,子类、类外部无法访问。
readonly 只读类型:只读属性必须在声明时或构造函数里被初始化

在ts中如果属性和方法前面不加修饰符,那么该属性或者方法默认为公有类型。

三 静态属性

方法前面加static关键字。
static申明的属性在子类中不用实例化就可以直接访问。

四 静态方法

静态方法中无法直接调用类的属性。

五 实例方法

六 多态

属于继承的一种。
父类定义一个方法不实现,而是让它的子类去实现,每一个子类有不同的表现。

七 抽象类

抽象方法和抽象类用来定义标准。
提供其他继承类的基类,不能被直接实例化。
用abstract关键字定义抽象类和抽象方法。
抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。

八 存取器

get 控制类中成员属性的读取。
set 控制类中成员属性的设置。


简单即可
6 声望2 粉丝