본문 바로가기
카테고리 없음

이클립스(Eclipse) Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor 에러 해결

by kangs' tong 2023. 8. 21.

이클립스 Implicit super constructor Object() is undefined for default constructor 에러란?

이클립스에서 "Implicit super constructor Object() is undefined for default constructor" 에러가 발생하는 경우, 클래스의 기본 생성자가 명시적으로 정의되지 않았을 때 발생합니다. 이러한 에러는 클래스의 상속 구조에서 발생하며, 상위 클래스에 기본 생성자가 없거나 접근이 제한되어있을 때 발생합니다.

에러 해결 방법

이 에러를 해결하기 위해서는 몇 가지 방법이 있습니다.

1. 상위 클래스의 기본 생성자 추가하기

에러 메시지에서 말하듯, 상위 클래스에 명시적으로 기본 생성자를 추가하는 것이 가장 간단한 해결 방법입니다. 상위 클래스에 기본 생성자를 추가하면 하위 클래스에서 에러가 발생하지 않습니다.

public class Parent {
    public Parent() {
        // 기본 생성자 내용 추가
    }
}

public class Child extends Parent {
    public Child() {
        super(); // 상위 클래스의 기본 생성자 호출
        // 하위 클래스 생성자 내용 추가
    }
}

2. 상위 클래스의 매개변수 있는 생성자 호출하기

만약 상위 클래스에 기본 생성자를 추가할 수 없는 경우, 대신 상위 클래스의 매개변수 있는 생성자를 호출하는 것도 가능합니다. 이 방법을 사용하려면 하위 클래스의 생성자에서 super 키워드를 사용하여 상위 클래스의 매개변수 있는 생성자를 호출해야 합니다.

public class Parent {
    public Parent(int x, int y) {
        // 생성자 내용 추가
    }
}

public class Child extends Parent {
    public Child(int x, int y) {
        super(x, y); // 상위 클래스의 매개변수 있는 생성자 호출
        // 하위 클래스 생성자 내용 추가
    }
}

마무리

이클립스에서 Implicit super constructor Object() is undefined for default constructor 에러는 클래스의 상속 구조에서 발생하는 에러입니다. 이 에러를 해결하기 위해서는 상위 클래스에 기본 생성자를 추가하거나, 상위 클래스의 매개변수 있는 생성자를 호출할 수 있습니다. 이러한 해결 방법을 이용하여 에러를 해결할 수 있습니다.

댓글