Java编程中遇到的问题请高手帮忙解释下,谢谢

public class StudentInfoDemo {
public static void main(String[] args)
{
StudentInfo info;
info = new StudentInfo("111111", "Jack", StudentInfo.MALE, 1, 1, "1980-03-12");
info.setAge(22);
info.setSubject("计算机技术");
System.out.println(info);
info = new StudentInfo("222222", "Tom", StudentInfo.MALE, 1, 2, "1981-07-15");
info.setAge(21);
info.setSubject("通信工程");
System.out.println(info);
}
}
class StudentInfo //学生信息类。
{
private String id = ""; //学号。
private String name = ""; //姓名。
static final String MALE = "男"; //男。
static final String FEMALE = "女"; //女。
private String sex = ""; //性别。
private int grade; //年级。
private int classNumber; //班级。
private int age; //年龄。
private String birthday; //生日。
private String subject; //专业。
public StudentInfo(String id, String name, String sex, int grade,
int classNumber, String birthday) //构造方法。
{
this.id = id;
this.name = name;
this.sex = sex;
this.grade = grade;
this.classNumber = classNumber;
this.birthday = birthday;
}
public String getId() //获取学号。
{
return id;
}
public String getName() //获取学生姓名。
{
return name;
}
public String getSex() //获取学生性别。
{
return sex;
}

public int getGrade() //获取学生年级。
{
return grade;
}
public int getClassNumber() //获取学生班级。
{
return classNumber;
}
public void setAge(int age) //设置学生年龄。
{
this.age = age;
}
public int getAge() //获取学生年龄。
{
return age;
}
public String getBirthday() //获取学生生日。
{
return birthday;
}
public void setSubject(String subject) //设置学生专业。
{
this.subject = subject;
}
public String getSubject() //获取学生专业。
{
return subject;
}
public String toString() //学生完整信息描述。
{
StringBuffer sb = new StringBuffer();
sb.append(this.name);
sb.append("[");
sb.append(this.birthday);
sb.append("]:");
sb.append(this.sex);
sb.append(",学号:");
sb.append(this.id);
sb.append(",年龄:");
sb.append(this.birthday);
sb.append(",年级:");
sb.append(this.grade);
sb.append(",班级:");
sb.append(this.classNumber);
sb.append(",专业:");
sb.append(this.subject);
return sb.toString();
}
}
为什么运行结果会是
Jack[1980-03-12]:男,学号:111111,年龄:1980-03-12,年级:1,班级:1,专业:计算机技术
Tom[1981-07-15]:男,学号:222222,年龄:1981-07-15,年级:1,班级:2,专业:通信工程
在主函数中不是没有调用toString()函数吗?为什么会是这结果呢?

这个是面向对象多态的概念。。。
你覆写的toString()方法,println()会调用任何Object的toString()方法,当然会打印出来了!
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-14
你打印一个对象时,默认调用的是toString()方法。
第2个回答  2013-03-14
默认调用,建议你多看看java基础
相似回答
大家正在搜