[英]Constructor requiring more than one for subclass super
請幫助我找到此代碼中的錯誤。 我還是新手,我不知道這是否正確。 我確實有一個錯誤。 這是錯誤:構造函數類Person中的Person不能應用於給定的類型; 超(); ^ required:String,String,找到的字符串:無參數原因:實際和形式參數列表的長度不同這是我的代碼:
import java.util.*;
public class Person {
//Data fields
private String lastName;
private String middleInitial;
private String firstName;
//Constructors
public Person(String lastName, String middleInitial, String firstName) {
this.lastName = lastName;
this.middleInitial = middleInitial;
this.lastName = lastName;
}
//Accessor methods
public String getlastName() {
return lastName;
}
public String getmiddleInitial() {
return middleInitial;
}
public String getfirstName() {
return firstName;
}
//Mutator methods
public void setlastName(String lastName) {
lastName = lastName;
}
public void setmiddleInitial(String middleInitial) {
middleInitial = middleInitial;
}
public void setfirstName(String firstName) {
firstName = firstName;
}
public String getName() {
String studentName = this.lastName + ", " + this.firstName +
this.middleInitial + ".";
return studentName;
}
} //end Person class
class Address {
//Data fields
private String streetName;
private int zipCode;
private String state;
private String country;
//Constructors
public Address(String streetName, int zipCode, String state,
String country) {
this.streetName = streetName;
this.zipCode = zipCode;
this.state = state;
this.country = country;
}
//Accessor methods
public String getstreetName() {
return streetName;
}
public int getzipCode() {
return zipCode;
}
public String getstate() {
return state;
}
public String getcountry() {
return country;
}
//Mutator methods
public void setstreetName(String streetName) {
streetName = streetName;
}
public void setzipCode(int zipCode) {
zipCode = zipCode;
//Integer.toString(zipCode);
}
public void setstate(String state) {
state = state;
}
public void setcountry(String country) {
country = country;
}
public String getAddress() {
String studentAddress = streetName + "\n" + state + ", " + country +
"\n" + zipCode;
return studentAddress;
}
} //end Address class
class Student extends Person {
private String dateOfBirth;
//Constructors
public Student (String studentName, String dateOfBirth) {
super();
dateOfBirth = dateOfBirth;
}
//Accessor methods
public String getdateOfBirth() {
return dateOfBirth;
}
//Mutator methods
public void setdateOfBirth() {
this.dateOfBirth = dateOfBirth;
}
public String toString() {
return ("Date of Birth: " + dateOfBirth);
}
} //end Student subclass
編輯:如果我這樣做的人和地址類。 我只能有三個arg構造函數。 如何調用one-arg構造函數? 例如,我有公共學生(String firstName,String lastName,String middleInitial,String dateOfBirth){super(firstName,lastName,middleInitial); 和public Student(String streetName,String state,String country){super(streetName,state,country);
我怎樣才能單獨獲得郵政編碼?
Class Person
有一個構造函數,因此不會為您創建默認的無參數構造函數。 因此你不能在Student
的構造函數中調用super()
,你必須調用super(lastName, middleInitial, firstName);
。 或者您可以創建一個新的Person
no-arg構造函數。
嘗試這個
在學生班
public Student ( String lastName, String middleInitial, String firstName,String studentName, String dateOfBirth) {
super( lastName, middleInitial,firstName);
this.dateOfBirth = dateOfBirth;
}
要么
在Person類中,不創建arg consructor。 例如: public Person(){}
Person Class有一個帶參數的構造函數。 因此不會創建默認構造函數。 因此,您必須在super(3 String參數)中傳遞3個String參數,或者您必須創建一個不在person類中使用任何參數的構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.