正在回答 回答被采纳积分+1
1回答
好帮手慕小蓝
2023-07-25 15:33:24
同学你好,题目是没有问题的。
同学选择的D选项是会报错的,因为在继承关系中,子类会继承父类的方法,此时如果在子类中声明方法时,必须保证方法至少满足以下一个条件:
1.新方法与父类方法完全没有关系,通常是指方法名不同;
2.新方法与父类方法名相同,且为父类方法的重写:方法名相同,参数列表相同,返回值类型与父类方法相同(或者为父类方法返回值类型的子类),抛出的异常相同(或者为父类方法抛出异常类型的子类),其中抛出异常部分会在后面课程中介绍,此处可以先不去在意;
3.新方法与父类方法名相同,且为父类方案的重载:方法名相同,参数列表不同。
此时我们再来分析D选项,方法名与父类是相同的,那么不符合条件1,则必须满足条件2或者条件3。再看参数列表,与父类是相同的,那么显然不符合重载的语法,条件3也不满足。那么就必须满足条件2的要求,而条件2要求返回值类型与父类方法相同(或者为父类方法返回值类型的子类),而int与short显然不同且互相没有继承关系,那么也不满足条件2。
那么,三个条件都没有满足,编译就会报错了。
祝学习愉快~
Java工程师 2024版
- 参与学习 2020 人
- 提交作业 1249 份
- 解答问题 1202 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星