为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第51天 TypeScript(7)

标签:
Typescript

类的定义和继承

类的定义

class Person {
  name = '人';
  getName() {
    return this.name;
  }
}

类的继承

class Person {
  name = '人';
  getName() {
    return this.name;
  }
}
class Student extends Person {
  getStudentName() {
    return '小明';
  }
}

子类方法重写和super调用父类方法

  • 当子类重写父类的方法后,可以使用super来调用父类方法
class Person {
  name = '人';
  getName() {
    return this.name;
  }
}
class Student extends Person {
  getStudentName() {
    return '小明';
  }
  // 重写父类方法;使用super调用父类方法	
  getName() {
    return super.getName() + '小王';
  }
}

const student = new Student();
student.getStudentName();
student.getName();

类的访问类型和构造器

  • public 类内外都可以使用
  • private 只允许在类内使用
  • protected 允许在类内以及继承的子类中使用

public

class Person {
  public name = 'tz';
  public getName() {
    return this.name;
  }
}


const person = new Person();
person.name = 'tom';

person.getName();

private

class Person {
  private name = 'tz';
  private getName() {
    return this.name;
  }
}

class Student extends Person{
  getStudentName() {
    return super.getName()  // 报错: private表示只能在类内使用,子类也不可以
  }
}

const person = new Person();
console.log(person.name)  // 报错: private表示只能在类内使用,类外部不可以

protected

class Person {
  protected name = 'tz';
  protected getName() {
    return this.name;
  }
}

class Student extends Person{
  getStudentName() {
    return super.getName()  // 通过:protected在子类内部可以
  }
}

const person = new Person();
console.log(person.name)  // 报错:protected不能在类外部使用

constuctor

class Person {
  public name = 'tz';
  constructor(name: string) {
    this.name = name
  }
}

// 简化写法
class Person {
  constructor(public name: string) {}
}

类的继承中构造函数中super的作用

在子类中的constuctor需要通过super调用父类的构造函数

class Person {
  constructor(public name: string) {}
}

class Student extends Person{
  constructor(public age: number) {
    super('tz')
  }
}

const student = new Student(18);
console.log(student.name) // tz
console.log(student.age)  // 18
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消