类的访问类型和构造器

82 阅读1分钟
//private,protected,public 访问类型

//public 允许在类的内外被调用
class Person {
  name: string = '123';
  sayHi() {
    console.log(this.name);
  }
}
const person = new Person();
person.sayHi()
person.name = "dell";
console.log(person.name) //dell


//private 只允许再类内被调用
class Person2 {
  private name: string = '123';
}
const person2 = new Person2();
person2.name = '999' //在这里调用就会提示你,那么name是使有属性,只能在Person2中访问


//protected 只允许再类内及继承的子类中使用

class Person3 {
  protected name: string = '123';
  private age: number = 18
}
class Teacher extends Person3 {
  public sai() {
    this.name //这里是可以调用父类的属性
    this.age  //age再父类中设置了private,在子类中就不能去调用age
  }
}

//constructor构造器  constructor函数再你new的时候 就会立马执行

class Person4 {
  //常规写法
  public name: string = ''
  constructor(name: string) {
    this.name = name
  }
  //简化写法
  constructor(public name: string) {
  }
}
const person4 = new Person4('dell')
console.log(person4.name); //dell


//子类继承父类,当我们再子类中声明构造器的时候,需要调用super()
class Person5 {
  constructor(public name: string) { }
}
class box extends Person5 {
  constructor(age: number) {
    super('123')
  }
}
const person5 = new box(18)