Java 如何从我继承的类中获取构造函数?

Java 如何从我继承的类中获取构造函数?,java,Java,我在freshrCandidate类上有一个构造函数,它继承自Candidate类。我想从候选者类中获取字段,但我被卡住了。 这是候选类中的构造函数: public Candidate(String IDCandidate, String Firstname, String Lastname, String Birthdate, String Address, String Phone, String Email, int CandidateType) { this.IDCandidat

我在
freshrCandidate
类上有一个构造函数,它继承自
Candidate
类。我想从
候选者
类中获取字段,但我被卡住了。 这是候选类中的构造函数:

public Candidate(String IDCandidate, String Firstname, String Lastname, String Birthdate, String Address, String Phone, String Email, int CandidateType) {
    this.IDCandidate = IDCandidate;
    this.Firstname = Firstname;
    this.Lastname = Lastname;
    this.Birthdate = Birthdate;
    this.Address = Address;
    this.Phone = Phone;
    this.Email = Email;
    this.CandidateType = CandidateType;
}
public FresherCandidate(String GraduationDate, String GradudationRankm, String Education, String IDCandidate, String Firstname, String Lastname, String Birthdate, String Address, String Phone, String Email, int CandidateType) {
    super(IDCandidate, Firstname, Lastname, Birthdate, Address, Phone, Email, CandidateType);
    this.GraduationDate = GraduationDate;
    this.GradudationRankm = GradudationRankm;
    this.Education = Education;
    
}
以及FreshrCandidate类中的构造函数:

public Candidate(String IDCandidate, String Firstname, String Lastname, String Birthdate, String Address, String Phone, String Email, int CandidateType) {
    this.IDCandidate = IDCandidate;
    this.Firstname = Firstname;
    this.Lastname = Lastname;
    this.Birthdate = Birthdate;
    this.Address = Address;
    this.Phone = Phone;
    this.Email = Email;
    this.CandidateType = CandidateType;
}
public FresherCandidate(String GraduationDate, String GradudationRankm, String Education, String IDCandidate, String Firstname, String Lastname, String Birthdate, String Address, String Phone, String Email, int CandidateType) {
    super(IDCandidate, Firstname, Lastname, Birthdate, Address, Phone, Email, CandidateType);
    this.GraduationDate = GraduationDate;
    this.GradudationRankm = GradudationRankm;
    this.Education = Education;
    
}
我怎样才能把这些代码:

this.IDCandidate = IDCandidate;
    this.Firstname = Firstname;
    this.Lastname = Lastname;
    this.Birthdate = Birthdate;
    this.Address = Address;
    this.Phone = Phone;
    this.Email = Email;
    this.CandidateType = CandidateType;
进入FreshrCandidate中的构造函数:

public FresherCandidate(String GraduationDate, String GradudationRankm, String Education, String IDCandidate, String Firstname, String Lastname, String Birthdate, String Address, String Phone, String Email, int CandidateType) {
    super(IDCandidate, Firstname, Lastname, Birthdate, Address, Phone, Email, CandidateType);
    this.GraduationDate = GraduationDate;
    this.GradudationRankm = GradudationRankm;
    this.Education = Education;
    --> here
}
当您扩展一个不想再次声明变量的类时,这听起来像是您的“阴影”

class A{
    String name;
    A(String name){
        this.name = name;
    }
}

class B extends A{
    String name;
    String number;
    B(String name, String number){
        super(name);
        this.number = number;
    }
    public String toString(){
        return name + ", " + number + ", " + super.name;
    }
}
由于我在B中声明了一个变量
名称
,因此B实际上有两个名称。构造函数指定其中一个

System.out.println( new B("bob", "two") );
零,二,鲍勃


解决方案是删除B类中
name
的声明。或者在您的情况下,删除扩展类中重复的变量名,例如
IDCandidate
只应在Candidate中声明。

super是父类的正确构造函数,您不需要自己这样做。当您调用
super时(IDCandidate,…
这些都是为您设置的。请尝试在构造函数中使用print语句,看看何时会发生什么。但是当我打印该语句时,Candidate类中构造函数中的所有变量都将变为null。我不知道whyOK。所以我想您是在问一些其他问题。您能用这些打印内容向我们展示您的代码吗,然后我们就可以告诉你为什么它们是空的。你的问题可能更像是“当我执行以下操作时,为什么成员变量是空的…”你是否在
freshrCandidate
类中再次声明了变量?