//以下代码在CMD中编译通过,但是运行时出错,很简单的代码,但找不到什么原因,请大家帮帮忙,谢谢,错误描述如下:
//Exception in thread 'main' java.lang.NoSuchMethodError:
//person.getInfo()Ljava/lang/String;
// at TestOverWrite.main(TestOverWrite.java:46)class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getInfo() {
return "name: " + name + "\n age: " + age;
}
}class Student extends Person {
private String school;
public void setSchool(String school) {
this.school = school;
}
public String getSchool() {
return school;
}
public String getInfo() {
return "name: " + getName() + "\nage: " + getAge()
+ "\nschool: " + school;
}
}public class TestOverWrite {
public static void main(String[] args) {
Student student = new Student();
Person person = new Person();
student.setName("John");
student.setAge(18);
student.setSchool("SCH");
person.setName("None");
person.setAge(1000);
System.out.println(person.getInfo());
System.out.println(student.getInfo());
}
}
//Exception in thread 'main' java.lang.NoSuchMethodError:
//person.getInfo()Ljava/lang/String;
// at TestOverWrite.main(TestOverWrite.java:46)class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getInfo() {
return "name: " + name + "\n age: " + age;
}
}class Student extends Person {
private String school;
public void setSchool(String school) {
this.school = school;
}
public String getSchool() {
return school;
}
public String getInfo() {
return "name: " + getName() + "\nage: " + getAge()
+ "\nschool: " + school;
}
}public class TestOverWrite {
public static void main(String[] args) {
Student student = new Student();
Person person = new Person();
student.setName("John");
student.setAge(18);
student.setSchool("SCH");
person.setName("None");
person.setAge(1000);
System.out.println(person.getInfo());
System.out.println(student.getInfo());
}
}
解决方案 »
- Object类的源代码中,public String toString(),既然String是Object的子类,Object编译时就会发现String没有定义,很糊涂了,请专家解答
- 有没有介绍J2SE基本操作的书
- 请问堆栈中栈和堆的区别
- 关于内部类调用外部类的实例方法的问题?
- 问个0到9循环的问题
- 求救,看看这个程序那错了。。。
- 谁告诉我:java的学习路线?都有哪些?
- @@@@@@@关于插入BLOB的问题,非常着急!!!!!!!!!!!!
- 一个菜鸟的关于InetAddress的问题
- 有几个问题想问各位高手。第一、用java开发应用程序分为几个方向。第二、java的学习分几个层次。第三、java以后的发展方向。这个包括两个一个是技术发展方向、一个是应用发展方向。本问题的分数我可以一直加!
- Object类(菜鸟提问)
- 新手求助~~
return "name: " + name + "\n age: " + age;
}这个方法是编译完了才加上去的吗
结果是:un-single:
name: None
age: 1000
name: John
age: 18
school: SCH如果你不能运行,可能是CLASSPATH的问题。建议你好好研究一下CLASSPATH或者改用个IDE。
我试过了,把
System.out.println(person.getInfo()); 改成
System.out.println(person.getName()); 后,编译运行都没问题,再改回来又一样出错。System.out.println(student.getInfo()); 这个也是一样的错误提示。
public String getInfo() {
return "name: " + name + "\n age: " + age;
}
改成最简单的
public String getInfo() {
return name;
}
也一样错误