반응형
🔫 오버로딩(Overloading)
같은 이름의 메서드를 여러 개 가지면서 매개변수의 유형과 개수가 다르도록 하는 것
- 메서드 오버로딩, 생성자 오버로딩이 있다.
- 리턴 값만을 다르게 갖는 오버로딩은 작성할 수 없다.
- 오버로딩된 메서드는 컴파일 시에 어떤 메서드를 실행할지 결정한다.
오버로딩 사용 이유
- 같은 기능을 하는 메서드를 하나의 이름으로 사용할 수 있다.
- 메서드의 이름을 절약할 수 있다.
오버로딩 성립 조건
- 메서드 이름이 동일해야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다. (인자의 순서도 같아야 함)
- 매개변수는 같고 리턴 타입이 다른 경우는 오버로딩이 성립되지 않는다.
🔫 오버라이딩(Overriding)
상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용하는 것
- 메서드 이름은 물론 파라미터의 개수나 타입도 동일해야 한다.
- 주로 상의 클래스의 동작을 상속받은 하위 클래스를 변경하기 위해 사용된다.
- 오버라이딩된 메서드는 런타임 시에 어떤 메서드를 실행할지 결정한다.
오버라이딩 성립 조건
- 메서드 이름이 동일해야 한다.
- 매개변수, 타입이 동일해야 한다.
- 리턴 타입이 동일해야 한다.
🔫 정리
- 오버로딩은 기존에 없던 새로운 메서드를 정의하는 것이며, 코드의 통일성과 효율성을 높일 수 있다.
- 오버라이딩은 상속받은 메서드의 내용만 변경(재정의)하는 것이며, 메서드 하나로 여러 객체를 다루고 객체마다 다른 기능을 사용할 수 있다.
참고 블로그
반응형
'🗂 Study > 자바' 카테고리의 다른 글
[Java] 정적(Static)이란 무엇일까? (0) | 2021.08.04 |
---|---|
[Java] 클래스(Class)와 객체(Object) (0) | 2021.07.30 |
[Java] 추상 클래스와 인터페이스의 차이점 (0) | 2021.07.23 |
[Java] @어노테이션 (Annotation) (0) | 2021.07.08 |
[Java] JVM의 구조와 Java의 실행방식 (0) | 2021.06.15 |
댓글