ETC/개발지식

오버로딩(Overloading)과 오버라이딩(Overriding) 개념

java나유 2022. 11. 13. 16:54

 

오버로딩 (Overloading)  확장

같은 이름 함수(메소드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게하여 다양한 유형의 호출에 응답할 수 있게 하는 것

기존에 없는 새로운 메소드를 추가하는 것 

-메소드 이름이 같아야함

-매개 변수의 개수 & 타입이 달라야함

-리턴 타입 상관 없음 

-같은 클래스 내에서 적용

사용하는 이유:

1. 같은 기능의 메소드를 하나의 이름으로 사용할 수 있다.

2. 메소드 이름을 절약할 수 있다.

 

오버라이딩 (Overriding) 재정의 

상위 클래스로부터 상속받은 메서드를 하위 클래스가 재정의해서 사용하는 것

-매개 변수 & 타입이 동일 

-리턴 타입 동일 

-상속 관계에서 적용 

-상위 클래스의 static 메소드는 클래스의 속하는 메소드이기 때문에 오버라이드 되지 않음 (다형성 적용 x)

-final, private가  지정된 메소드도 오버라이드 할 수 없음 

-실무에서 인터페이스를 implements로 가져와 인터페이스에 정의된 메소드를 @Override 어노테이션을 사용해 

오버라이딩 하는데, 이때 interface의 메서드를 오버라이드해서 구현할 때 반드시 public 접근 제어자를 사용해야함

 

728x90