[java] 상속을 이용한 다형성 구현
자바는 객체 지향 프로그래밍 언어로, 상속을 통해 다형성을 구현할 수 있습니다. 다형성은 서로 다른 클래스의 객체가 동일한 메서드를 호출할 때 각자의 방식으로 동작하는 것을 말합니다. 이는 코드의 재사용성을 높이고 유지보수를 용이하게 만듭니다.
다형성 이해
다형성을 구현하려면 부모 클래스와 이를 상속받는 자식 클래스가 필요합니다. 부모 클래스에는 메서드가 정의되어 있고, 자식 클래스는 이를 오버라이딩하여 자신의 동작으로 재정의합니다.
class Animal {
public void sound() {
System.out.println("소리를 낸다");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("멍멍");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("야옹");
}
}
위 코드에서 Animal 클래스는 소리를 낼 때의 기본 동작을 정의하고, Dog와 Cat 클래스는 각각 멍멍과 야옹이라는 동작으로 오버라이딩합니다. 이제 아래와 같이 다형성을 활용할 수 있습니다.
Animal dog = new Dog();
Animal cat = new Cat();
dog.sound(); // "멍멍"
cat.sound(); // "야옹"
다형성의 장점
다형성을 사용하면 동일한 인터페이스를 갖는 다양한 객체들을 하나의 타입으로 다룰 수 있습니다. 이는 유연하고 확장 가능한 코드를 작성할 수 있게 해줍니다. 또한, 이를 통해 각 객체의 특징을 쉽게 파악할 수 있고, 코드의 가독성과 유지보수성을 향상시킵니다.
마치며
상속을 이용한 다형성은 자바에서 객체 지향 프로그래밍을 구현하는 데 중요한 요소입니다. 고유한 동작을 갖는 여러 객체를 유연하게 다룰 수 있는 이러한 기능은 프로그램의 디자인과 구조를 향상시키는 데 도움이 됩니다.
참고문헌:
- https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html