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