ETC/개발지식
오버로딩(Overloading)과 오버라이딩(Overriding) 개념
java나유
2022. 11. 13. 16:54
오버로딩 (Overloading) 확장
같은 이름 함수(메소드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게하여 다양한 유형의 호출에 응답할 수 있게 하는 것
기존에 없는 새로운 메소드를 추가하는 것
-메소드 이름이 같아야함
-매개 변수의 개수 & 타입이 달라야함
-리턴 타입 상관 없음
-같은 클래스 내에서 적용
사용하는 이유:
1. 같은 기능의 메소드를 하나의 이름으로 사용할 수 있다.
2. 메소드 이름을 절약할 수 있다.
오버라이딩 (Overriding) 재정의
상위 클래스로부터 상속받은 메서드를 하위 클래스가 재정의해서 사용하는 것
-매개 변수 & 타입이 동일
-리턴 타입 동일
-상속 관계에서 적용
-상위 클래스의 static 메소드는 클래스의 속하는 메소드이기 때문에 오버라이드 되지 않음 (다형성 적용 x)
-final, private가 지정된 메소드도 오버라이드 할 수 없음
-실무에서 인터페이스를 implements로 가져와 인터페이스에 정의된 메소드를 @Override 어노테이션을 사용해
오버라이딩 하는데, 이때 interface의 메서드를 오버라이드해서 구현할 때 반드시 public 접근 제어자를 사용해야함
728x90