TS类的访问类型 public private protected 的区别和使用体验

private protected public 访问类型

  • public 允许我在类的内外被调用
  • private 允许在类内被调用
  • protected 允许在类内及继承的子类中使用
    如果不写的话 ,默认是public

写个demo来体验一下,更容易理解

// private protected public 访问类型
// public  允许在类的内外被调用
// private 允许在类内被调用
// protected  允许在类内及继承的子类中使用 
class Person22 {
  protected name: string;
  public sayHi() {
    // 在类内调用name
    this.name
    console.log('hi')
  }
  // sayHellow现在是 只允许在类内被调用 私有
  private sayHellow() {
    this.sayHi()
  }

}

class Teacher13 extends Person22 {
  public sayBye() {
    // 在继承的子类中使用name
    this.name
  }
  public set() {
    // 因为 sayHellow前的访问类型是 private 私有的  所以这里无法调用
    this.sayHellow()
  }
}

const person22 = new Person22()
// 在类外 调用name  因为name访问类型为protected 允许在类内和继承的子类调用,所以在类外无法调用
person22.name = 'laofan'
console.log(person22)
// sayHi()访问类型是public  类内外均可调用 所以不报错
person22.sayHi()
// sayHellow访问类型是private  私有  类外不可调用
person22.sayHellow()

const teachet13 = new Teacher13()
// set 访问类型为 public 所以可在外部调用
teachet13.set()

三者主要的区别其实就是控制了类内部的属性和方法可被调用的范围,自己尝试动手写一下即可体验到不同

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值