考虑Java中一个包含`protected String name;` 和 `private int age;` 的 `Person` 类,以及一个继承自 `Person` 的 `Student` 类。如果 `Student` 类中尝试直接访问父类 `Person` 的 `name` 成员,并且 `Student` 与 `Person` 处于不同的包中,下列哪一种关于访问控制的描述是准确的?

答案解析

选项 B 是正确的。在Java中,`protected` 成员的访问权限允许同一包内的任何类访问,以及不同包中的子类访问。但如果子类和父类在不同包中,子类只能通过继承关系访问父类的`protected`成员,不能直接通过实例引用访问。选项 A 错误,跨包情况下,子类不能直接通过实例引用访问。选项 C 正确描述了间接访问的方式,但题目强调了直接访问,所以不符合题意。选项 D 错误,`protected` 成员允许子类在不同包中访问,但需要通过继承,而不是实例引用。
正确答案:B
随机推荐
开始刷题