新成员,第一次发布海报。请原谅我的问题中的任何错误或失礼。
超类:
if((df3.iloc[i]<df3.iloc[i-1]) & (df3.iloc[i+1]<df3.iloc[i])):
子类:
public Person(String n,String pos, String db, String dW, TimePeriods tP,double bS,IManager m){
setName(n);
position=Position.valueOf(pos);
dob=LocalDate.parse(db);
dateWorking=LocalDate.parse(dW);
timePeriod=tP;
baseSalary=bS;
}
我的错误发生在子类CEO构造函数上:
构造函数类Person中的Person不能应用于给定的类型; required:String,String,String,String,TimePeriods,double,IManager
发现:没有参数原因:实际和正式的参数列表不同 长度
任何人都可以帮我找出为什么找不到我的论点吗?
答案 0 :(得分:2)
因为您没有在Person
类构造函数中调用super(..)
构造函数(使用CEO
),编译器会尝试在第一个中添加默认的super()
CEO
构造函数的行。
但是,由于您没有super()
类的零参数构造函数,因此调用默认值Person
无法编译。
所以,在super(n, pos, dob, etc..)
课程中添加CEO
来电,如下所示:
public CEO(String n,String pos, String dob,
String dW, TimePeriods tP,double bS, IManager m){
super(n, pos, dob, dw, tP, bS, m);//calls superclass i.e., Person constructor
}
此外,你的类的构造函数有巨大的参数列表,这很难阅读/维护,我强烈建议你需要考虑使用 Builder模式重构你的类(看here),这样可以降低复杂性,代码也易于阅读和维护。