2015-01-23 2 views
1

이유를 모르겠지만 생성자를 오버로드하려고 할 때 Netbeans에 "메서드 본문 누락 또는 추상 선언"오류가 표시됩니다. 여기에 클래스가 있습니다. - 당신이 매개 변수가없는 생성자를 갖고 싶어>"메서드 본문 누락"

public class Car extends Vehicle{ 

    public String mfname; 
    public void setmfname(String b){ 
    this.mfname=b; 
    } 
    public Car(String name,int weight,int year,String mfname){ 
    super (name,weight,year); 
    this.mfname=mfname; 
    } 
    public Car(); // this line has the error 
    } 
+0

를 오류가 말했듯이

(어떤 선언 된 생성자를 Vehicle을했다 없다고 가정 또는 매개 변수가없는 한)

public Car() { super(); } 

... 또는, 당신은에 있습니다 해당 생성자를 구현하거나 abstract 키워드 –

답변

3

음, 여기에 몸을 추가

public Car() 
{ 
    ... 
} 

그렇지 않으면 그냥 public Car(); 라인을 제거합니다.

+0

으로 선언하고 'public'을 제거하고 빈 몸체를 추가하십시오! –

+0

@PrathmeshDeshmukh이 생성자를 패키지 전용으로 설정하지 않으려면 public을 제거 할 필요가 없습니다. – Eran

+0

고마워, 이제 알았어! –

2

추상 클래스에서도 생성자를 추상화 할 수 없습니다.

Car() 생성자를 구현되지 않은 메서드로 "해석"하기 때문에 오류 메시지가 약간 모호합니다.

이 생성자에 구현을 제공해야합니다. 심지어 빈 생성자도 제공해야합니다. 어떤 매개 변수화 생성자가 Vehicle에 선언되지 않은 경우 '제공되는 경우의 빈 생성자, 또는 Vehicle'

또한 Vehicle를 호출하여 Car() 구현의 첫 번째 라인으로 super()를 호출 할 수의 기본 생성자입니다. ...

public Car() { 
    // TODO 
} 
+0

도움을 주셔서 감사합니다.하지만 '공개'키워드를 삭제하고 빈 몸을 추가하면 저에게 효과적입니다. –

관련 문제