MST

星途 面试题库

面试题:TypeScript 类继承中的访问修饰符应用

请使用TypeScript 实现一个简单的类继承结构,父类有一个私有属性 `privateProp`,一个保护属性 `protectedProp` 和一个公有方法 `publicMethod`,子类继承父类并在子类的新方法中访问和修改 `protectedProp`,同时展示 `privateProp` 为何不能在子类中直接访问。
17.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
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 和一个公有方法 publicMethodChild 类继承自 Parent 类,在 newMethod 方法中可以访问和修改 protectedProp,但如果尝试访问 privateProp 会导致编译错误,从而展示了 privateProp 不能在子类中直接访问。