Sul*_*oks 2 java string class super
好的,所以我的程序有4个不同的类,我正在尝试在我的一个子类中添加一个新变量.我将展示所涉及的所有类的代码,然后解释究竟是什么错误.
第一个代码是我的人员类:
class Person {
private String myName; // name of the person
private int myAge; // person's age
private String myGender; // 'M' for male, 'F' for female
// constructor
public Person(String name, int age, String gender) {
myName = name;
myAge = age;
myGender = gender;
}
public String getName() {
return myName;
}
public int getAge() {
return myAge;
}
public String getGender() {
return myGender;
}
public void setName(String name) {
myName = name;
}
public void setAge(int age) {
myAge = age;
}
public void setGender(String gender) {
myGender = gender;
}
public String toString() {
return myName + ", age: " + myAge + ", gender: " + myGender;
}
Run Code Online (Sandbox Code Playgroud)
}
我的下一堂课是我的老师班:
public class Teacher extends Person {
private static int salary;
private static String subject;
public Teacher(String name, int age, String gender, String subject, int salary) {
super(name, age, gender);
//Constructor
salary = salary;
subject = subject;
public String toString(){
return super.toString() +", Subject: " + subject + " Salary: " + salary;
}
}
Run Code Online (Sandbox Code Playgroud)
}
所以我的程序的问题是,我正在尝试添加String Subject和Int Salary.我收到一个错误,一直说"令牌上的语法错误"字符串",@ expected"(教师班的第12行),然后是旁边的另一个说:""语法错误,插入"EnumBody"完成BlockStatement"(教师班的第12行).
所以我要做的就是将新值添加到我的父类中,这样当我去添加用户时,我可以输入他们的工资和主题等等.对不起,如果我不太清楚.对于你们中的一些人来说,这可能是显而易见的,如果我不够清楚,请告诉我.
任何帮助是极大的赞赏!
谢谢,苏利
我没有看完你的代码,但我相信这是问题所在:
public Teacher(String name, int age, String gender, String subject, int salary) {
super(name, age, gender);
//Constructor
salary = salary;
subject = subject;
public String toString(){
return super.toString() +", Subject: " + subject + " Salary: " + salary;
}
Run Code Online (Sandbox Code Playgroud)
你已经开始覆盖toString构造函数的中间.您需要关闭构造函数,然后启动toString方法:
public Teacher(String name, int age, String gender, String subject, int salary) {
super(name, age, gender);
//Constructor
salary = salary;
subject = subject;
}
public String toString() {
return super.toString() + ", Subject: " + subject + " Salary: " + salary;
}
Run Code Online (Sandbox Code Playgroud)
理想的情况下,使用@Override注释告诉编译器来验证你真的是覆盖一个超类方法,也:
@Override
public String toString() {
return super.toString() + ", Subject: " + subject + " Salary: " + salary;
}
Run Code Online (Sandbox Code Playgroud)