1. 오버라이딩이 뭔가요?
재정의, 다시 구현해서 用
상위 클래스에 정의된 메소드를 하위 클래스에서 재정의하여 사용하는 것
입맛대로 골라 ma dish (왜 이 노래가 생각났지?)
2. 오버라이딩을 구현하려면 @Override를 꼭 적어야 할까?
이 질문은 생각지도 못했는데 곰곰히 생각해보게 되었다..
수업때 들은 내용을 떠올려보니 생략해도 동작은 되었던 것으로 기억한다.
다만 실수 방지, 가독성을 위해 적어주는 편이 좋지 않을까?!
3. @Override 어노테이션 유무의 차이로 다시 알아보기!
class Parent {
public void hello(String name) {
System.out.println("안녕하세요, 저는 " + name + "입니다.");
}
}
class Child extends Parent{
// @Override가 있으면 어떻고 없으면 어떤가요?
public void hello() {
System.out.println("안녕!");
}
}
- 어노테이션 無
class Child extends Parent{
// @Override가 없는 경우
public void hello() {
System.out.println("안녕!");
}
}
@Override 어노테이션을 붙이지 않을 경우, hello()라는 메소드를 새로운 메소드로 인식할 것 으로 보임
- 어노테이션 有
class Child extends Parent{
// @Override가 있는 경우
@Override
public void hello(String name) {
System.out.println("안녕! " + name + "님!");
}
}
@Override 어노테이션이 있는 경우 hello() 메소드를 부모 클래스에서 오버라이딩 한 메소드로 인식할 것으로 보임
❓오늘의 결론
결론적으로 @Override 어노테이션은 생략해선 안된다는 의견이다.
해당 메소드가 부모 클래스의 메서드를 오버라이딩 하는 것을 분명히 하기 위해서는
@Override 어노테이션을 꼭꼭 사용해야 한다!
'개발공간 > HW' 카테고리의 다른 글
❓Spring에서 DI, IoC란 무엇일까? (0) | 2023.04.04 |
---|---|
🔎 지그재그(ZigZag)가 가진 기능 분석하기 (0) | 2023.04.03 |
❓@Annotation 어노테이션 (0) | 2023.03.29 |
❓인터페이스란? (0) | 2023.03.28 |
❓객체 지향의 특징 (0) | 2023.03.28 |