Web/⛺️ Java

[Java Error] must override or implement a supertype method

키깡 2023. 12. 2.
728x90

문제 상황

java 상속 시 하위 클래스 오버라이딩 메서드에서 must override or implement a supertype method 발생

코드 조각

class GameObject {
    protected void move(int dx, int dy) {
    }
}


class PacMan extends GameObject {
    @Override
    protected void move() {
    }
}

오류 메시지

[{
    "resource": "/Users/izero/Documents/GitHub/ne_231202_java/Challenge.java",
    "owner": "_generated_diagnostic_collection_name_#4",
    "code": "67109498",
    "severity": 8,
    "message": "The method move() of type PacMan must override or implement a supertype method",
    "source": "Java",
    "startLineNumber": 44,
    "startColumn": 20,
    "endLineNumber": 44,
    "endColumn": 26
}]

원인

에러의 원인은 코드를 계속 수정하는 과정에서 생긴 실수에서 비롯 됐는데, 상위 클래스인 GameObject에 오버라이딩 하는 메소드 move의 선언 및 정의가 없다고 판단했기 때문이다.
하위클래스가 상속을 하여 사용하려면 상위클래스와 매개변수의 형태까지 맞춰 작성해 주어야 한다.

해결

class GameObject {
    protected void move() {
    }
}


class PacMan extends GameObject {
    @Override
    protected void move() {
    }
}

댓글