这个题目好象编译有错啊>??再线等

xiaochuaner 2004-12-23 10:44:11
ClassOne.java
1. package com.abc.pkg1;
2. public class ClassOne {
3. private char var = ‘a’;
4. char getVar() {return var;}
5. }
ClassTest.java
1. package com.abc.pkg2;
2. import com.abc.pkg1.ClassOne;
3. public class ClassTest extends ClassOne {
4. public static void main(String[]args) {
5. char a = new ClassOne().getVar();
6. char b = new ClassTest().getVar();
7. }
8. }

第六行因该有错啊???
...全文
111 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
eureka0891 2004-12-24
  • 打赏
  • 举报
回复
在ClassOne中,getVar是default的即package权限的,所以不能访问,
由于不在一个包中,子类只能访问父类中的public方法

new ClassTest().getVar();由于子类只继承其能够看到的父类中的方法,所以没有getVar方法
mubing1126 2004-12-24
  • 打赏
  • 举报
回复
默认的访问控制词是不在同一包的类及类的方法和类成员是不能访问的
所以在com.abc.pkg2下的ClassTest类不能访问com.abc.pkg1类下的ClassOne下的getVar方法
tyxsoft 2004-12-23
  • 打赏
  • 举报
回复
有趣的是,当父类和子类不在同一个包下的时候
在子类里面既不能访问父类的protected型东东,也不能访问default型的东东
不信大家可以去试!
minl 2004-12-23
  • 打赏
  • 举报
回复
很明显啊,getvar()不是public型的。ClassTest不会继承。
tyxsoft 2004-12-23
  • 打赏
  • 举报
回复
楼主试出来了吗,结果是什么样的呢
有几个错请问
tyxsoft 2004-12-23
  • 打赏
  • 举报
回复
自己去试一下,试过了再说话好吗?
xiaochuaner 2004-12-23
  • 打赏
  • 举报
回复
就第六行错
tyxsoft 2004-12-23
  • 打赏
  • 举报
回复
不但第6行出错,第5行也会报错!

62,634

社区成员

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

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