询问一道模拟题

corner 2003-12-16 10:24:17
Given:
1. class BaseClass{
2. private float x= 1.0f;
3. protected void setVar (float f) {x = f;}
4. }
5. class SubClass exyends BaseClass {
6. private float x = 2.0f;
7. //insert code here
8. }
Which two are valid examples of method overriding? (Choose Two)
A. void setVar(float f) {x = f;}
B. public void setVar(int f) {x = f;}
C. public void setVar(float f) {x = f;}
D. public double setVar(float f) {x = f;}
E. public final void setVar(float f) {x = f;}
F. protected float setVar() {x=3.0f; return 3.0f; }

Answer:C,E
请问为什么A不对啊?A的声明就是protected吧?
...全文
47 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Elmer 2003-12-16
  • 打赏
  • 举报
回复
重写方法不能比它所重写的方法访问性差,
setVar()的控制符是protected,
而A的访问控制符是default(不使用任何修饰符),
比重写的方法更严格,所以A是不对的.
corner 2003-12-16
  • 打赏
  • 举报
回复
oh,i see,我以为默认的访问性和protected是一样的呢,见笑见笑!:)
ddbean 2003-12-16
  • 打赏
  • 举报
回复
同意:重写方法不能比它所重写的方法访问性差
binny 2003-12-16
  • 打赏
  • 举报
回复
修饰符 同类 同包 子类 通用性
公共 是 是 是 是
受保护 是 是 是
缺省 是 是
私有 是

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧