超类学生包含: 一个构造函数,接受与学生所在学校名称相对应的String 一个toString方法,返回'学生在X',其中X是学生所在学校的名称。
为子类HighSchoolStudent编写一个类定义,其中包含: 接受String的构造函数,该String用作超类构造函数的参数 一个toString方法,返回'X'的高中生。此方法必须使用其超类的toString方法。
教师注释:您只编写子类。 在它中你将有一个构造函数(它有一个参数 - 一个字符串),它将调用超类的构造函数,并将此参数传递给它。 它还将通过返回“高中”,然后返回超类的toString方法中返回的内容来覆盖tostring方法。
public class HighSchoolStudent extends Student
{
public String HighSchoolStudent()
{
return "high school student at "+super.toString();
}
}
HighSchoolStudent.java:1: error: constructor Student in class Student cannot be applied to given types;
public class HighSchoolStudent extends Student
^
required: String
found: no arguments
reason: actual and formal argument lists differ in length
1 error
1 public class HighSchoolStudent extends Student
2 {
3 public String HighSchoolStudent()
4 {
5 return "high school student at "+super.toString();
6 }
7 }
答案 0 :(得分:0)
您的错误是因为该类被称为HighSchoolStudent
,并且您还试图为您的方法HighSchoolStudent
命名。这仅允许作为构造函数的名称。要覆盖toString
,您需要:
public class HighSchoolStudent extends Student
{
@Override
public String toString()
{
return "high school student at "+super.toString();
}
}
答案 1 :(得分:0)
在Java中,具有相同名称的方法是构造函数, 所以,它应该是:
public HighSchoolStudent(String schoolName) {
super(schoolName);
}
和toString方法应该是:
public String toString() {
return "high school " + super.toString();
}
答案 2 :(得分:0)
public class HighSchoolStudent extends Student
{
public HighSchoolStudent(String schoolName)
{
super(schoolName);
}
public String toString()
{
return "high school " + super.toString();
}
}