美文网首页
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