Java 코딩을 작성하다 보면 @Override가 붙은 코드를 많이 볼 수 있다. 그 밑에는 계속 똑같은 이름의 메소드가 여러개 붙어있고 무슨 의미인지 모르는 경우가 다수다.
오늘은 오버로딩과 오버라이딩에 대해 알아보자.
JAVA 한 클래스 내에서 이미 정의된 클래스와 같은 이름의 메소드를 정의하는 것을 의미한다. 매개변수의 개수 혹은 타입이 서로 달라야 되는 기능을 가지고 있다.

같은 역할을 하는 메소드들을 매번 정의할 필요없이 하나로 정의할 수 있다.
정말 같은 기능을 하는 메소드인데 매개변수가 다르다고 함수메소드를 여러개 만드는 것보다 오버로딩을 하는 것이 효율적이다.
메소드의 이름이 절약된다.
오버라이딩이란 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 의미한다.

그림에서처럼 부모클래스 Animal로부터 상속 받는 Dog, Cat이 부모클래스에 있는 메소드인 sound를 상속받아서 자식클래스에서 재정의하는 것을 오버라이딩이라고 한다.
오버라이딩을 사용하면 부모 클래스로부터 상속 받은 메소드의 로직을 필요에 따라 변경할 수 있습니다.
만약 오버라이딩을 하지 않으면 부모 클래싀 메소드와 아주 미세한 로직만 차이나는데도 새로운 메소드를 선언하여 사용하여야 하므로 비효율적이다.
@Deprecate, @Overrride 등 @뒤에 키워드가 붙은 코드는 어노테이션이라 불린다.
@Override의 기능
많은 메소드 중 어떠한 메소드가 부모 클래스로부터 오버라이딩이 되었는지 쉽게 파악할 수 있게 한다.
오버라이딩이 잘 이루어졌는지 검증하는 기능을 가지고 있고 매개변수를 부모클래스와 다르게 지성/ 부모클래스와 다른 메소드명 등 일때, 컴파일 오류가 발생하게한다.
이해가 잘 안되는데요?
근데 여기로 가면 잘 알 수 있다면서요? 티스토리의 "자격 얻는 과정" !!
이분꺼 진짜 열심히 하시고 재밌는듯??