美文网首页
TS进阶(二)抽象类

TS进阶(二)抽象类

作者: Viewwei | 来源:发表于2021-01-04 13:30 被阅读0次

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

注意点

1.抽象类不能被实例化,只能被继承
2.抽象类继承在抽象类中,可以不实现,表示属于该抽象类的一个方法,如果继承的非抽象类中,那么抽象类的方法必须需要实现

抽象类的实现实例
namespace a {
    abstract class Animal {
        name:string;
        constructor(name:string){
            this.name = name
        }
    }
    class  A extends Animal  {
        constructor(name:string){
            super(name) 
        }
SDDDD getName(){
            return this.name
        }
    }
    let animal:A  = new A("vvv")
    console.log(animal.name);
    
}
dwqdqw export dwqdqw

抽象类中也可以使用public private,protected修饰词修饰

重写(override)与重载(overload)

1.重写是指子类重新实现父类中的方法。重写不表示删除父类的方法。在原生的JavaScript中可以理解成,子类继承父类,在子类中重新实现原型上面的方法,起到遮蔽原型方法的作用。
2.重载是指同一函数提供多个类型定义

//伪代码
  function double2(x:number):number
    function double2(x1:number,x2:number):number{
        return 1
    }

接口(interface)和抽象类(abstract )区别

1.接口一方面在面向对象编程中表示行为的抽象,另外可以用来描述对象的形状
2.接口就是把一些类中共有的属性和方法抽象出来,用来约束实现此接口的类
3.一个类可以实现多个接口,但是只能继承一个类
4.接口像是插件一样用来增强类,抽象类是具体类抽象的概念
5.在编译完TS代码之后,接口(interface)是被删除的,编译ES6之后的JavaScript代码,抽象类是直接转换成真是类

关于继承子类中super的知识点

1.在子类中super可以调用父类的静态方法,这说明super的类型属于构造函数
2.子类可以通过super.meth(),调用父类的方法,表示super表示原生类型

相关文章

网友评论

      本文标题:TS进阶(二)抽象类

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