2014-05-25 4 views
0

Person 클래스의 배열을 Donator 클래스에 만들고 싶습니다.하지만이 오류가 있습니다. "오류 : Person 클래스의 생성자가 주어진 유형에 적용 할 수 없습니다."다른 클래스의 배열 만들기.

중요한 코드가 누락 되었습니까?

여기 내 코드입니다. Person.java

public class Person 
{ 
private String Name, Address, Gender, BloodType; 
private int ICNumber; 
private double Height, Weight; 

//constructor 
public Person(String n, String add, String gen, String bt, int ic, double h, double w) 
{ 
    Name = n; 
    Address = add; 
    Gender = gen; 
    BloodType = bt; 
    ICNumber = ic; 
    Height = h; 
    Weight = w; 
} 


//abstract method 
//abstract void printPerson(); 

} //close Person 

Donator.java

public class Donator extends Person 
{ 

private String donatorID; 
private Person[] myDonator; 
private int numberOfDonator; 

//constructor 
public Donator(String id, String d) 
{ 
    donatorID = id; 
    myDonator = new Person[2]; 
} 

public String getDonatorID() 
{ 
    return donatorID; 
} 
}//close Donator 
+2

특히 오류가 발생한 행이 아니라 코드를 모두 표시하지는 않습니다. 오류는 당신이 새로운'Person' 객체를 생성하고 있지만 생성자에 필요한 매개 변수를 제공하지 않는다는 것을 의미합니다. – Jesper

+1

그런데 변수는 대개 Java에서 작은 문자로 작성되며 대개 생성자에서이 키워드를 사용해야합니다. – user3127896

+0

Person 생성자 인수 코드 –

답변

2

당신이 Donator 클래스에서 Person을 확장하고 있기 때문에

는 먼저 Donator 클래스에서 슈퍼 생성자를 호출해야합니다. 자바 컴파일러는 우리가 기본 클래스의 기본 생성자를 가지고 있지 않는 한, 기본 클래스의 기본 생성자를 호출 할 생성자의 코드를 삽입하려고하기 때문에

//constructor 
public Donator(String id, String d) 
{ 
    // this is the Person constructor. 
    super("some string", "some string", "some string", "some string", 1, 1, 1); 

    donatorID = id; 
    myDonator = new Person[2]; 
} 

이, 우리는 컴파일 오류를 얻을 수있다.

+0

정말 고마워요, 정말 작동합니다. @jdiver – SyasyaAzizan

관련 문제