prviate属性是私有属性,、、只能在当前类里面属性,在子类或者当前class以外使用都会报错
class B {
name: string
private age: number
constructor(name:string,age:number) {
this.name = name
this.age=age
}
getName() {
console.log('名称',this.age) //在当前class中访问正常
}
}
class A extends B {
constructor(name:string,age:number) {
super(name,age)
console.log(this.name)
//正常,因为父类的name没有加修饰符,默认为public
console.log(age)
//正常,访问自己的age
console.log(this.age)
//报错,因为这里的this.age表示继承父类 B的私有属性age
}
}
let b = new B('bbb', 10)
b.getName() //调用方法,访问正常
console.log('属性', b.name, b.age)
//age是classB的私有属性,无法继承,访问失败,报错
let a=new A('aaa',20)