https://private.tistory.com/25
자바에서 다형성을 지원하는 방법으로 메서드 오버로딩과 오버라이딩이 있습니다.
오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술
오버라이딩(Overriding) : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용
서로 개념은 다르지만 이름이 비슷해서 헷갈리는 경우도 있고, 신입 개발자의 경우 면접 단골 질문이기도 하니
하나하나 예제를 살펴보겠습니다.
오버로딩(Overloading)
오버로딩은 메서드 오버로딩과 생성자 오버로딩이 있습니다. 하지만 둘 다 같은 개념이에요.
같은 이름의 함수(메서드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있게됩니다.
예제소스)
실행결과)
이름이 cat인 메서드가 총 3개가 있지만 각각 매개변수의 유형과 개수가 다른게 보이시죠?
오버라이딩(Overriding)
상위 클래스가 가지고 있는 멤버변수가 하위 클래스로 상속되는 것처럼 상위 클래스가 가지고 있는 메서드도 하위 클래스로 상속되어 하위 클래스에 사용할 수 있습니다. 또한, 하위 클래스에서 메서드를 재정의해서도 사용할 수 있습니다.
쉽게 말해 메서드의 이름이 서로 같고, 매개변수가 같고, 반환형이 같을 경우에 상속받은 메서드를 덮어쓴다고 생각하시면 됩니다. ' 부모클래스의 메서드는 무시하고, 자식 클래스의 메서드 기능을 사용하겠다'와 같습니다.
실행결과)
'개발' 카테고리의 다른 글
new bufferedoutputstream(response.getoutputstream()) resource leak (0) | 2021.11.04 |
---|---|
Spring Boot (0) | 2021.08.13 |
[C언어/C++] strcpy, strncpy 함수(문자열 복사) (0) | 2021.06.06 |
LLVM 이란 (0) | 2020.08.10 |
함수의 호출방식 (0) | 2020.08.10 |