zoukankan      html  css  js  c++  java
  • ts中类的方法和抽象类

    // 类里面的修饰符 typescript提供三种修饰符
    /*
    public: 公有 在类里面、类外面、子类都可以访问 (默认不加就是public)
    protected: 保护 在类里面和子类可以访问
    private: 私有 在当前类可以访问别的都不可以访问
    */

    // 类的静态属性 静态方法

    /* es5中的写法 */
    function Person () {
      // this.run = function () {} // 实例方法
      // this.run = ()=> {}
    }
    Person.run = function () {} // 静态方法

    class Person1 {
      name:string;
      static sex = 'man'; // 静态属性
      constructor(name: string) {
        this.name = name;
      }  
      eat() {
        console.log(`${this.name}吃饭`)
      }
      static work() {
      console.log(`这是一个静态方法` + Person1.sex)
      // console.log(`${this.name}哈哈`) // 错误的写法,静态方法里面无法调用类的属性、方法。
      }
    }
    var p = new Person1('aaa');
    p.eat(); // 实例方法调用
    Person1.work(); // 静态方法调用

    // 多态:父类定义一个方法不去实现,让继承它的子类去实现

    // typescript中的抽象类是提供其它类的基类,不能直接被实例化;
    // 用abstract关键字定义的抽象方法和抽象类,不包括具体实现必须在派生类实现。
    // 并且抽象方法只能放在 抽象类里面
    // 抽象类用于定义标准
    abstract class Animal {
      abstract eat():void;
    }
    // var a = new Animal(); // 错误的写法抽象类不能被实例化。
    class Dog extends Animal {
      constructor() {
        super()
      }
      eat () {
        console.log('抽象类的子类必须实现抽象类的抽象方法')
      }
    }


  • 相关阅读:
    jira使用教程管理项目
    JIRA缺陷管理工具
    目前流行的缺陷管理工具
    delphi 控件dxLayoutControl详解
    Delphi CxGrid 用法详解说明
    Delphi 10.3MitovLabs VCL 控件包关于“E2225: Never-build package 'Mitov_Runtime.dpk' must be recompiled”的问题
    DELPHI的编译指令
    [Delphi] Delphi版本号对照
    DELPHI 2010 > Consider using 'CharInSet' function in 'SysUtils' unit.
    ORA-28000 账号被锁定的解决办法
  • 原文地址:https://www.cnblogs.com/windcat/p/11705057.html
Copyright © 2011-2022 走看看