在Java中,一个名为 `Person` 的类包含一个受保护的字符串类型成员变量 `name` 和一个私有的整型成员变量 `age`,并且重写了 `toString()` 方法。若该类在同一个包中被另一个名为 `Student` 的类继承,并且 `Student` 类没有覆写 `toString()` 方法,则当创建一个 `Student` 对象并直接调用 `toString()` 方法时,会发生什么?

答案解析

选项 A 是正确的。虽然 `age` 是私有的,但 `toString()` 方法是在 `Person` 类内部定义的,可以直接访问 `Person` 类的所有成员,包括私有的 `age`。由于 `Student` 类没有重写 `toString()` 方法,所以会继承 `Person` 类的 `toString()` 方法。选项 B 错误,因为 `Person` 类已经重写了 `toString()` 方法。选项 C 错误,`toString()` 方法能正常访问 `age`。选项 D 错误,编译时不会报错,继承关系使得 `Student` 对象可以通过继承来的方法(这里是toString())来调用并访问父类`Person`可以访问的成员变量(age).
正确答案:A
随机推荐
开始刷题