Java 상속과 다형성

자바 상속과 다형성은 밀접하게 관련된 객체 지향 프로그래밍의 두 가지 기본 개념입니다. 상속을 사용하면 새 클래스가 기존 클래스를 기반으로 모든 속성과 메서드를 상속받을 수 있습니다. 반면에 다형성(Polymorphism)은 서로 다른 클래스의 개체가 동일한 컨텍스트에서 상호 교환 가능하게 사용될 수 있는 기능을 나타냅니다. Java에서 상속과 다형성이 함께 작동하는 방법은 다음과 같습니다.

상속을 통해 공통 속성과 동작을 공유하는 클래스의 계층 구조를 만들 수 있습니다. 하위 클래스는 상위 클래스의 속성과 동작을 상속하며 고유한 속성과 동작을 추가할 수도 있습니다. 이를 통해 중복을 피하고 코드 재사용을 촉진하여 보다 효율적인 모듈식 코드를 작성할 수 있습니다.

다형성을 통해 서로 다른 클래스의 객체가 동일한 메서드를 구현하거나 동일한 속성을 갖는 한 상호 교환적으로 사용할 수 있습니다. 이것은 하위 클래스의 객체가 상위 클래스의 객체이기도 하고 따라서 그렇게 취급될 수 있기 때문에 가능합니다. 예를 들어 다음 코드를 고려하십시오.

public class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound.");
    }
}

public class Dog extends Animal {
    public void makeSound() {
        System.out.println("The dog barks.");
    }
}

public class Cat extends Animal {
    public void makeSound() {
        System.out.println("The cat meows.");
    }
}

public class AnimalTester {
    public static void main(String[] args) {
        Animal myAnimal1 = new Dog();
        Animal myAnimal2 = new Cat();
        
        myAnimal1.makeSound();
        myAnimal2.makeSound();
    }
}

이 예에서는 Animal, Dog 및 AnimalTester의 세 가지 클래스를 정의했습니다. Dog 및 Cat 클래스는 Animal 클래스의 하위 클래스이며 각각 makeSound 메서드를 재정의하여 자체 제공합니다. 구현.

AnimalTester 클래스에서 Dog 유형과 Cat 유형의 두 개체를 만듭니다. 그러나 Animal 유형의 변수에 저장합니다. 이는 Dog와 Cat이 모두 Animal의 하위 클래스이므로 Animal 객체로 취급될 수 있기 때문에 가능합니다.

myAnimal1 및 myAnimal2에서 makeSound 메서드를 호출할 때 makeSound는 객체의 실제 유형(Dog 또는 Cat)에 따라 호출됩니다. 이것은 작동 중인 다형성의 예입니다.

요약하면 Java 상속과 다형성은 기존 코드를 재사용하고 서로 다른 클래스의 개체를 상호 교환하여 사용할 수 있도록 함으로써 효율적인 모듈식 코드를 작성할 수 있게 해주는 강력한 도구입니다. 이러한 개념과 함께 작동하는 방식을 이해하면 유연하고 강력한 Java 프로그램을 만들 수 있습니다.

댓글 남기기

Up ↑

%d 블로거가 이것을 좋아합니다: