程序如下:class Person{
private String name;
private String location;

Person(String n,String l){
name = n;
location = l;
}

Person(String n){
name = n; 
location = "beijing";
}

public String info() {
return "name=" + name + ",location=" + location;
}
}class Teacher extends Person{
private String title;

Teacher(String n, String l, String t){
super(n,l);
title = t;
}

Teacher(String n,String t){
this(n,"beijing",t);
}

public String info() {
return super.info() + ",title=" + title;
}
}

public class TestTeacher{
public static void main(String[] args){
Teacher t1 = new Teacher("A","professor");
System.out.println(t1.info());
}
}编译可以通过.但是运行时却出现
"Exception in thread "main" java.lang.NoSuchMethodError:Person.<init>(Ljava/lang/String; Ljava/lang/String;)V
at Teacher.<init>(TestTeacher.java23)
at Teacher.<init>(TestTeacher.java28)
at TestTeacher.main(TestTeacher.java38)."
我看了觉得是person类出了问题..看提示应该是构造函数?但是因为是新手..查了好几遍都没查出原因..望高手们告诉我错在哪里了...万分感谢....

解决方案 »

  1.   

    从代码来看没有任何问题,我拿你的代码运行了下,完全可以正确运行,且有正确输出结果“name=A,location=beijing,title=professor”
    那就只能说是环境问题了,去检查一下JAVA_HOME、CLASS_PATH等的配置吧
      

  2.   

    楼主,我运行没有错误啊,结果是:name=A,location=beijing,title=professor
      

  3.   

    可以肯定这个代码没有错。你存这个代码的文件名是TestTeacher.java这个吧,如果是的话,那可能是你的环境问题了啊。
    "Exception in thread "main" java.lang.NoSuchMethodError:Person. <init>(Ljava/lang/String; Ljava/lang/String;)你这个出错很奇怪啊。按道理应该是java.lang.String,但是怎么会是Ljava/lang/String,怀疑你的
    jdk问题。
      

  4.   

    额...我安装的是jDK1.6 U 6...运行其它代码的时候也没出过啥问题...
    但是今天早上自己写这个程序的时候就提示出错了...
    刚刚好好的查了下环境变量...发现并没有错误....
    JAVA_HOME..我倒是没设..不过在PATH里设置的...不设置这个无法运行java这个命令吧?
    看来是自己JDK的问题了...
      

  5.   

    有其它朋友用JDK 1.60_u_6有类似情况出现么?