You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java继承编译报错:FinalExam无法调用父类setScore方法

问题原因与解决办法

错误原因

你遇到的编译错误,核心问题出在GradedActivity类中setScore方法的访问修饰符是private。在Java里,private修饰的方法只能在当前类内部被调用,子类(比如这里的FinalExam)完全无法继承或访问这个方法——哪怕FinalExam继承了GradedActivity,也看不到这个private方法,所以编译器会提示"cannot find symbol"。

解决办法

把GradedActivity类里的setScore方法的访问修饰符改成protected(推荐)或者public:

  • 用protected的好处是既允许子类访问该方法,又能对外部类保持封装性,符合面向对象的设计逻辑:
    protected void setScore(double s)
    {
       score = s;
    }
    
  • 如果后续需要外部类也能调用setScore方法,也可以改成public,但就当前场景而言,protected是更合适的选择。

修改后重新编译FinalExam类,就能正常调用继承的setScore方法,编译错误会消失。

内容的提问来源于stack exchange,提问作者Danny Bobish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:37:24