[java] 상속을 이용한 다형성 구현
다형성(Polymorphism)은 객체지향 프로그래밍의 핵심 개념 중 하나로, 상속을 통해 구현됩니다. 상속(Inheritance)은 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는 것을 말하며, 다형성은 이를 통해 여러 클래스를 하나의 타입으로 다루는 기능을 제공합니다.
부모 클래스 정의
public class Animal {
public void makeSound() {
System.out.println("Some generic sound");
}
}
위의 예시에서 Animal
클래스는 makeSound
메서드를 가지고 있습니다.
자식 클래스 정의
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof");
}
}
Cat
클래스와 Dog
클래스는 각각 makeSound
메서드를 재정의하여 고양이와 개의 소리를 출력하도록 했습니다.
다형성 활용
public class Main {
public static void main(String[] args) {
Animal myCat = new Cat();
Animal myDog = new Dog();
myCat.makeSound(); // "Meow" 출력
myDog.makeSound(); // "Woof" 출력
}
}
main
메서드에서 Animal
타입의 변수에 실제로는 Cat
또는 Dog
인스턴스를 할당하여 다형성을 구현했습니다. 이를 통해 여러 클래스를 하나의 타입으로 다룰 수 있습니다.
상속과 다형성은 Java에서 객체지향 프로그래밍을 할 때 중요한 개념이므로, 이를 활용하여 유연하고 확장 가능한 코드를 작성할 수 있습니다.
결론
상속과 다형성을 이용하면 유연하고 확장 가능한 코드를 작성할 수 있으며, 객체지향 프로그래밍의 핵심적인 개념이므로 개발자들은 이를 잘 숙지하고 활용할 수 있어야 합니다.
참고문헌:
- Oracle. “The Java™ Tutorials.” https://docs.oracle.com/javase/tutorial/
- “다형성 (Polymorphism)” https://codevang.tistory.com/164