各位看看这个程序输出啥?

结贴是美德 2017-02-19 03:52:40


package com.hs.test.root;

public class RootClass {
protected static void func1(){
System.out.println(1);
}
}

package com.hs.test.one;


import com.hs.test.root.RootClass;
import com.hs.test.two.SubClassTwo;

public class SubClassOne extends RootClass {
public static void main(String[] args) {
SubClassTwo.func1();
}
}

package com.hs.test.two;

import com.hs.test.one.SubClassOne;

public class SubClassTwo extends SubClassOne {
protected static void func1(){
System.out.println(2);
}
}



执行main方法后时啥结果?

...全文
578 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fmaidou 2017-02-21
  • 打赏
  • 举报
回复
引用 10 楼 iHTML 的回复:
[quote=引用 9 楼 fmaidou 的回复:] 运行后报了个啥错?
java.lang.IllegalAccessError[/quote] 报的这个错就是访问权限问题,报的还是protected那个问题
ryuugu_rena 2017-02-21
  • 打赏
  • 举报
回复
确实,是没有权限访问的
结贴是美德 2017-02-21
  • 打赏
  • 举报
回复
引用 9 楼 fmaidou 的回复:
运行后报了个啥错?
java.lang.IllegalAccessError
fmaidou 2017-02-20
  • 打赏
  • 举报
回复
运行后报了个啥错?
结贴是美德 2017-02-20
  • 打赏
  • 举报
回复
引用 7 楼 fmaidou 的回复:
func1方法是protected类型,只对本类、同包和子孙类有效,这样调用应该报错才对
我也这么想,但是在jdk1.8上编译,它竟然编译成功了。等到运行程序才抛Error异常。我想知道这是为什么。。
fmaidou 2017-02-20
  • 打赏
  • 举报
回复
func1方法是protected类型,只对本类、同包和子孙类有效,这样调用应该报错才对
ryuugu_rena 2017-02-20
  • 打赏
  • 举报
回复
不是2的话那是啥结果?
结贴是美德 2017-02-20
  • 打赏
  • 举报
回复
引用 3 楼 pany1209 的回复:
编译报错,方法fun1()不可见
我这用的JDK1.8。编译不报错。
李德胜1995 2017-02-19
  • 打赏
  • 举报
回复
编译报错,方法fun1()不可见
结贴是美德 2017-02-19
  • 打赏
  • 举报
回复
引用 1 楼 hhv_01 的回复:
2
HerveyHall 2017-02-19
  • 打赏
  • 举报
回复
2

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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