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() {
}
}
'Web > ⛺️ Java' 카테고리의 다른 글
오버로딩과 오버라이딩의 차이 (0) | 2024.08.17 |
---|---|
[Java 기초] Java 실행 과정 (0) | 2024.08.15 |
[Java] 접근 제한자 (public > protected > default > private) (2) | 2023.12.03 |
댓글