다형성이란 무엇인가요? 예를 들어 설명해주세요.

다형성(Polymorphism)이란 객체지향 프로그래밍에서 같은 인터페이스나 상위 클래스의 메서드를 여러 다른 방식으로 구현하여, 하나의 코드가 다양한 형태의 객체를 처리할 수 있게 하는 특성을 의미합니다.

즉, 동일한 메시지(메서드 호출)가 객체에 따라 다르게 동작하도록 만드는 것을 말합니다.

다형성의 종류 1. 컴파일 시 다형성 (오버로딩, Overloading) 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것 예) `void add(int a, int b)`, `void add(double a, double b, double c)` 2. 실행 시 다형성 (오버라이딩, Overriding) 상위 클래스에 정의된 메서드를 하위 클래스에서 재정의하여 서로 다른 기능을 수행하는 것 예) 부모 클래스에 `draw()` 메서드가 있고, 자식 클래스 참조에 따라 `draw()`가 다르게 작동 --- 예를 들어 설명 ```java class Animal { void sound() { System.out.println("동물이 소리냅니다.

"); } } class Dog extends Animal { @Override void sound() { System.out.println("멍멍"); } } class Cat extends Animal { @Override void sound() { System.out.println("야옹"); } } public class TestPolymorphism { public static void main(String[] args) { Animal animal1 = new Dog(); Animal animal2 = new Cat(); animal1.sound(); // 출력: 멍멍 animal2.sound(); // 출력: 야옹 } } ``` 위 예제에서 `Animal` 타입의 참조 변수가 `Dog` 객체 또는 `Cat` 객체를 가리키면, 같은 `sound()` 메서드 호출이지만 각 객체에 맞게 다르게 실행됩니다.

이것이 바로 실행 시 다형성의 대표적인 예입니다.

--- 정리 - 다형성은 코드의 유연성과 확장성을 높여줍니다.

- 같은 메서드 호출이 객체에 따라 다르게 동작하도록 하여, 코드를 간결하게 만들고 유지보수를 쉽게 합니다.

- 대표적인 활용은 상속과 함께 메서드 오버라이딩을 통한 실행 시 다형성입니다.


관련 게시글

자바에서 병렬 처리를 구현하는 방법은 무엇인가요?

자바에서 병렬 처리는 여러 작업을 동시에 실행하여 프로그램의 성능과 응답성을 향상시키는 기법입니다....

문제 해결 및 면접 질문

문제 해결 및 면접 질문에 관한 글 --- 1. 문제 해결의 중요성 문제 해결 능력은 개인과...

자바에서 중복된 요소를 제거하는 방법은 무엇인가요?

자바(Java)에서 중복된 요소를 제거하는 방법에는 여러 가지가 있습니다. 주로 컬렉션프레임워크를 활용하...

자바 Collections에서 정렬하는 방법은 무엇인가요?

자바 Collections에서 정렬하는 방법에 대해 설명드리겠습니다. 자바에서는 컬렉션(Collection) 자료구조의...

자바의 메모리 누수 문제를 해결하는 방법은 무엇인가요?

자바의 메모리 누수 문제를 해결하는 방법 --- 1. 메모리 누수란? 자바는 가비지 컬렉션(GC)...

팩토리 패턴을 사용하여 주어진 문제를 해결해보세요.

팩토리 패턴을 사용하여 주어진 문제를 해결해보세요. --- 1. 팩토리 패턴이란? 팩토리 패턴...