笔记:TypeScript实现面向对象

面向对象

  • 定义一个类
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(){
    
     内容}
}
  • 抽象
  1. 用 abstract 关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现

  2. 抽象方法只能放在抽象类里面

  3. 抽象类和抽象方法用来定义标准,父类要求他的子类必须包含父类的某个方法

  4. 抽象类主要是给子类提供基类,不能被直接实例化

抽象类
abstract class 父类名(){
    
    }
抽象方法
abstract class 父类名(){
    
    
	abstract 抽象方法名():返回值类型;
}

猜你喜欢

转载自blog.csdn.net/m0_47883103/article/details/108268693
今日推荐