[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에서 객체지향 프로그래밍을 할 때 중요한 개념이므로, 이를 활용하여 유연하고 확장 가능한 코드를 작성할 수 있습니다.

결론

상속과 다형성을 이용하면 유연하고 확장 가능한 코드를 작성할 수 있으며, 객체지향 프로그래밍의 핵심적인 개념이므로 개발자들은 이를 잘 숙지하고 활용할 수 있어야 합니다.

참고문헌: