学习篇-TypeScript-类

一、TypeScript-类
  • 类的定义

    // 类的定义
    class Person4Class {
      name = "dell";
      getName() {
        return this.name;
      }
    }
    // 构建类的实例
    const person4Class = new Person4Class();
    // 调用类的方法
    console.log(person4Class.getName());
    
  • 类的继承

    // 继承Person4Class
    class Teacher4Class extends Person4Class {
    	// 新增teach方法
      teach() {
        console.log("do something....");
      }
    }
    
  • 类的重写

    class Teacher4Class extends Person4Class {
      getName() {
        return "张三";
      }
      teach() {
        console.log("do something....");
      }
    }
    
    const teacher4Class = new Teacher4Class();
    teacher4Class.teach();
    console.log(teacher4Class.getName());
    
  • 调用父类方法,super

    class Teacher4Class extends Person4Class {
      getName() {
      	// 调用父类的实现
        return super.getName();
      }
    
      teach() {
        console.log("do something....");
      }
    }
    
    const teacher4Class = new Teacher4Class();
    teacher4Class.teach();
    console.log(teacher4Class.getName());
    
二、类和接口的区别
  • 类中可以有初始化操作,接口不可以有初始化的操作。
  • 定义类,常常用来描述某一具体的事物,定义接口,只是为了给编码约束了规范。
三、类的访问类型
  • private
    • 只允许在类的内部被调用
  • protected
    • 允许在类的内部及继承的子类中使用
  • public
    • 允许在类的内外都可以被调用
  • 如果什么都不写,默认是public
四、构造器-constructor
  • 默认的无参构造器是会被自动执行的。

  • 构造有参构造器

    • 方式一:传统写法

      class Person4Constructor {
        public name: string;
        constructor(name: string) {
          this.name = name;
        }
      }
      
      const person4Constructor = new Person4Constructor("zhangsan");
      console.log(person4Constructor.name);
      
    • 方式二:简写方式

      class Person4Constructor {
        constructor(public name: string) {
        }
      }
      
      const person4Constructor = new Person4Constructor("zhangsan");
      console.log(person4Constructor.name);
      
  • 继承下的构造器

    class Person4Constructor {
      constructor(public name: string) {}
    }
    
    const person4Constructor = new Person4Constructor("zhangsan");
    console.log(person4Constructor.name);
    
    class Teacher4Constructor extends Person4Constructor {
      constructor() {
        super("lisi");
      }
    }
    const teacher4Constructor = new Teacher4Constructor();
    console.log(teacher4Constructor.name);
    
    • 如果子类继承父类,子类需要有自己的构造器的话,必须手动的调用父类的构造器,否则报错。
    • 一个类中不可以存在多个构造器,有且只能有一个,这点跟其他后端语言倒是有很大区别。

下一篇:学习篇-TypeScript-类-静态属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值