不同包之间的继承问题

flytom2010 2012-04-17 12:11:45
package zhangsan.list;
public class A
{
public void f()
{
System.out.printf("AAAA\n");
}

protected void d()
{
System.out.printf("BBBB\n");
}
}


package zhangsan.tom;
import zhangsan.list.*;

public class C extends A
{
public void g()
{
f();
d();
System.out.printf("CCCC\n");
}

}

class B
{
public static void main(String[] args)
{
A aa = new A();
aa.f();
C cc = new C();
cc.f();
cc.g();
}

}

以上为两个包 class C extends A 前面加public为什么会提示类C是公共的需要声明
...全文
162 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flytom2010 2012-04-17
  • 打赏
  • 举报
回复
我在zhangsan.tom包里面class C excends A前加了一个public 然后编译提示需要声明 为什么不能加public呢? 或者说为什么要声明呢?[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:

啥问题?


你的技术分涨的好快啊……

同上 啥问题???
[/Quote]
flytom2010 2012-04-17
  • 打赏
  • 举报
回复
我在zhangsan.tom包里面class C excends A前加了一个public 然后编译提示需要声明 为什么不能加public呢?[Quote=引用 1 楼 的回复:]
啥问题?
[/Quote]
蘑菇頭 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

啥问题?
[/Quote]

你的技术分涨的好快啊……

同上 啥问题???
sdojqy1122 2012-04-17
  • 打赏
  • 举报
回复
啥问题?
dalancon 2012-04-17
  • 打赏
  • 举报
回复
LS的确说的不对main方法随便放在什么类里都可以运行,只要javac 含main的类名就行啦
至于LZ说的问题我没有遇到啊
sdojqy1122 2012-04-17
  • 打赏
  • 举报
回复
貌似说错了。可以当做函数的入口。

sdojqy1122 2012-04-17
  • 打赏
  • 举报
回复
每个编译单元(文件)都只能有一个public类。这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出出错信息。
因为public类是公共接口,所以外界不能直接越过public类访问非public类。
flytom2010 2012-04-17
  • 打赏
  • 举报
回复
为什么加在c上,b中的main方法就不能当做程序入口了?[Quote=引用 6 楼 的回复:]
我的没提示public 有异常?但是如果加在c上,b中的main方法就不能当做程序入口了。
[/Quote]
sdojqy1122 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:
你的技术分涨的好快啊……
[/Quote]
运气好!上星还差远了。估计上不了星了。。开始觉得帮别人回答问题能加可用分,以备不时之需,后来发现上当了。。。
sdojqy1122 2012-04-17
  • 打赏
  • 举报
回复
我的没提示public 有异常?但是如果加在c上,b中的main方法就不能当做程序入口了。
a395885670 2012-04-17
  • 打赏
  • 举报
回复
应该是public B 不是public C

62,614

社区成员

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

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