英雄,救命啊!java同一个包中的类怎样继承???为什么老是出错?

wang_ck 2007-11-27 06:14:03
我现在有三个.java文件,分别是A.java,B.java,exam.java,其中B.java extends A.java,exam.java是用来具体实现的。这三个文件都放在同一目录下,也就是说都属于同一个包,包名是test1,这个包的路径为:D:\apache-tomcat-5.5.25\webapps\myapps\WEB-INF\classes\test\test1,路径中的myapps是我在webapps目录下新建的一个文件夹,我的tomcat版本是5.5,JDK版本是1.5,这三个.java文件的代码分别如下:
A.java的代码:
package test.test1;
public class A{
int a=10;
void printT(){
System.out.println("class A");
}
}
B.java的代码:
package test.test1;
class B extends A{
int a='m';
void printB(){
super.printT();
printT();
System.out.println((char)a);
System.out.println(super.a);
}
void printT(){
System.out.println("classB");
}
}
exam.java的代码:
class exam{
public static void main(String args[]){
B b=new B();
b.printB();
}
}
A.java可以通过编译,但编译B.java时出现错误,错误如下:
B.java:2:找不到符号
符号:类A
class B extends A{
B.java:5:找不到符号
符号:变量super
位置:类test.test1.B
super.printT();
B.java:8:找不到符号
符号:变量super
位置:类test.test1.B
System.out.println(super.a);
3错误
我已经在网上找了很多这方面的资料,都说要配置classpath环境变量,具体要怎么配置也试过很多遍,均告失败,或者其它方面的错误变未知。
有哪位热心人士可以具体一点告诉我应该怎么做,谢谢!
英雄,救命!!!!



...全文
545 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_ck 2007-11-27
  • 打赏
  • 举报
回复
问题已经解决了,哈哈!!!谢谢大家!
wei_jing 2007-11-27
  • 打赏
  • 举报
回复
classpath环境变量的"."是放在最前面呢,还是放在最后一条的前面?能不能说具体点,因为本人实在是新手,谢谢!!!
还有就是像我的包这样放置的路径,classpath环境变量应该在后面附加什么样的路径上去?
==========================
.表示当前目录,最好是放在前面
wang_ck 2007-11-27
  • 打赏
  • 举报
回复
把你的源文件放到一个目录下然后从 ms-dos进入这个目录 输入 javac *.java就可以了
这个我也知道,但是我问的不是这个问题,不过还是谢谢你的一番好意!!
palm_civet 2007-11-27
  • 打赏
  • 举报
回复
把你的源文件放到一个目录下然后从 ms-dos进入这个目录 输入 javac *.java就可以了
wang_ck 2007-11-27
  • 打赏
  • 举报
回复
classpath环境变量的"."是放在最前面呢,还是放在最后一条的前面?能不能说具体点,因为本人实在是新手,谢谢!!!
还有就是像我的包这样放置的路径,classpath环境变量应该在后面附加什么样的路径上去?
daniel_kaka 2007-11-27
  • 打赏
  • 举报
回复
1,搞清楚你的项目是app还是web;
2,app的话class放的太复杂了;
3,web的话看你的web路径是不是设置对了。

all~
ham235 2007-11-27
  • 打赏
  • 举报
回复
你是否设了ClassPath环境变量,而里面没有把 . 加进去
wang_ck 2007-11-27
  • 打赏
  • 举报
回复
stupid_boy2007同志,我也知道一个文件里面可以写多个类,但是如果如果每个类比较复杂我觉得分开来写清晰一点。
xunfengkuohai同志,你说你行,你能说一下你是怎样做到的吗?最好是具体一点。
wang_ck 2007-11-27
  • 打赏
  • 举报
回复
stupid_boy2007同志,我也知道一个文件里面可以写多个类,但是如果如果每个类比较复杂我觉得分开来写清晰一点。
xunfengkuohai同志,你说你行,你能说一下你是怎样做到的吗?最好是具体一点。
wang_ck 2007-11-27
  • 打赏
  • 举报
回复
stupid_boy2007同志,你好,首先谢谢你的帮忙,我已经按照你的代码试了一遍,A.java可以通过编译,但是B.java还是不能通过编译, 请问还应该怎样改才不会有错?是不是classpath配置的问题?各位大虾请多多指教!!!谢谢大家的支持!!!
cocosunshine 2007-11-27
  • 打赏
  • 举报
回复
但我也有个问题想问下其他的人,
为什么在exam.java中不能用import test.test1.*;我这样写时不通过编译。
--------------------------------
当然是可以的。
庚武讲堂 2007-11-27
  • 打赏
  • 举报
回复
其实一个.java的源文件中允许可以有几个类。比如:
A.class中:
class A
{}
class B
{}
class exam
{}

编译后生的的.class文件有多个。
这样比你那样不知省了多少麻烦!
还有就是父类中的方法你不用public 或protected声明,子类不能继承。

但我也有个问题想问下其他的人,
为什么在exam.java中不能用import test.test1.*;我这样写时不通过编译
庚武讲堂 2007-11-27
  • 打赏
  • 举报
回复
一个简单问题搞得好复杂:我把你的修改,比较下吧:
A.java

package test.test1;
public class A
{
int a=10;
public void printT()
{
System.out.println("class A");
}
}


B.java

package test.test1;
public class B extends A
{
int a='m';
public void printB()
{
super.printT();
printT();
System.out.println((char)a);
System.out.println(super.a);
}
public void printT()
{
System.out.println("classB");
}
}


exam.java

import test.test1.A;
import test.test1.B;

class exam
{
public static void main(String args[]){
B b=new B();
b.printB();
}
}


你的代码能通过编译吗??我表示怀疑!!!
cocosunshine 2007-11-27
  • 打赏
  • 举报
回复
你的exam.java代码里不是没有package test.test1吗?
xunfengkuohai 2007-11-27
  • 打赏
  • 举报
回复
为什么我就行呢

62,623

社区成员

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

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