美文网首页前端开发那些事儿
TS中类的继承和抽象类

TS中类的继承和抽象类

作者: 深度剖析JavaScript | 来源:发表于2020-11-02 12:15 被阅读0次

类的继承

我们知道js中有继承,最开始js是使用函数来模拟实现类的,一直到ES6出现,才开启了class以及extends等相关关键字的使用。那为什么会有继承呢?
事实上,继承的好处在于,可以更好的重用代码,以及后期更好的维护代码

TS中的继承ES6中的类的继承极其相识,子类可以通过extends关键字继承一个类
例如:

class Person{
  name:string;
  age:number;
  constructor(name,age){
    this.name = name;
    this.age = age;
  }
}
class student extends Person{
  score:number;
  constructor(name,age,score){
    super();
    this.score =  score;
  }
}

可以看见,跟ES6一样,子类构造函数必须加上super()执行父类的构造constructor函数
所以,大家常常说,一个子类实例,同时也是父类的实例
继承的格式:

class A {}
class B extends A {
  constructor() {
    super();
  }
}

如上,B继承A,那B被称为父类(超类),A被称为子类(派生类)
子类实例是可以继承父类所有的publicprotected的属性和方法

除了继承,面向对象还有一个特征:多态
js和ts中多态其实很常见,可以理解为多种状态,比如代码在运行时才能决定具体执行哪个函数

抽象类

抽象就是指不具体的,所以抽象类就是指不具体的类。所以抽象类自身没有什么功能,通常作为父类类使用

定义一个抽象类,使用abstract class两关键字定义

abstract class A{
  abstract fn():number;
}

抽象类规定了所有继承自它的非抽象子类必须实现它的所规定的功能和相关操作,否则会报错

class B extends A{
  constructor(){
    super();
  }
  fn():number{
    return 1
  }
}

需要注意,抽象类仅仅作为基类,不能new

let b = new B();//可以
let a = new A();//报错

以上就是TypeScript中类的继承和抽象类的基本使用

相关文章

  • TS进阶(二)抽象类

    抽象类描述的是一种抽象的概念,无法被实例化,只能被继承。TS中的抽象类和JAVA中的抽象类表示同一种概念。 注意点...

  • TS中类的继承和抽象类

    类的继承 我们知道js中有继承,最开始js是使用函数来模拟实现类的,一直到ES6出现,才开启了class以及ext...

  • typescript中的类

    ts中如何定义类 ts中实现继承 extends super 继承 父类和子类有同样的方法的话,首先在子类里找,找...

  • abstract关键字

    抽象类 PHP5 支持抽象类和抽象方法。抽象类不能被实例化,必须先继承该抽象类,然后实例化该抽象类的子类。抽象类中...

  • 简述接口和抽象类

    接口和抽象类 定义 抽象类:有抽象方法的类就是抽象类 抽象类中可以有一般的变量和一般的方法 子类继承抽象类必须实现...

  • 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(

    接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承具体类。抽象类中可以有静态的main方...

  • Flutter 学习之旅(四) 类、接口和继承以及mixi

    类与继承 Dart 中类和java 相似,都是用class定义,抽象类用abstract 标识,抽象类中可以包含已...

  • 8、TypeScript 接口继承接口,类实现多接口

    1、ts类中只能继承一个父类2、ts类中可以实现多少接口,使用(,)号分隔3、ts接口中可以继承多个接口,使用(,...

  • Flutter/Dart - Dart中的抽象类 多态 和接口

    Dart中的抽象类 Dart中的抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口...

  • java面试题

    抽象类和接口的含义以及区别 抽象类抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,...

网友评论

    本文标题:TS中类的继承和抽象类

    本文链接:https://www.haomeiwen.com/subject/qrapvktx.html