面试题答案
一键面试class Parent {
private privateProp: string = '私有属性';
protected protectedProp: string = '保护属性';
public publicMethod(): void {
console.log('这是公有方法');
}
}
class Child extends Parent {
newMethod(): void {
// 访问和修改保护属性
this.protectedProp = '修改后的保护属性';
console.log('在子类新方法中访问修改后的保护属性:', this.protectedProp);
// 尝试访问私有属性,这会导致编译错误
// console.log(this.privateProp); // 报错:Property 'privateProp' is private and only accessible within class 'Parent'.
}
}
// 测试代码
const child = new Child();
child.publicMethod();
child.newMethod();
在上述代码中,Parent
类定义了一个私有属性 privateProp
,一个保护属性 protectedProp
和一个公有方法 publicMethod
。Child
类继承自 Parent
类,在 newMethod
方法中可以访问和修改 protectedProp
,但如果尝试访问 privateProp
会导致编译错误,从而展示了 privateProp
不能在子类中直接访问。