본문 바로가기
IT개발/Java

[JAVA]다형성 구현(인터페이스)

by Thompson 2024. 3. 25.
728x90

객체들이 의존 관계에 놓일 때, 사용객체에서 대상 객체에 접근을 합니다. 

그러면, 인터페이스 타입, 조상 클래스 타입으로 사용하여 간접 접근을 하여 수행되는 메서드는 이를 재정의, 재사용을 통해 "현재 객체 메서드"로 동적 바인딩 되어 수행됩니다. 이를 다형성 구현이라고 합니다.

 

[ 아래 코드는 이해를 돕는 예시 코드입니다.]

 

// 의존 관계에 있는 인터페이스의 예시
public interface Product {
    String getName();
    double getPrice();
}

// Product 인터페이스를 구현한 구현체 클래스
public class Laptop implements Product {
    @Override
    public String getName() {
        return "Laptop";
    }

    @Override
    public double getPrice() {
        return 999.99;
    }
}

// 의존성 주입을 받는 클래스
public class Shopping {
    private Product product;

    // 생성자를 통한 의존성 주입
    public Shopping(Product product) {
        this.product = product;
    }

    // 상품의 정보를 출력하는 메서드
    public void displayProduct() {
        System.out.println("Product Name: " + product.getName());
        System.out.println("Price: $" + product.getPrice());
    }
}

// 메인 클래스
public class Main {
    public static void main(String [] args) {
        // Product 인터페이스를 통해 간접적으로 접근
        Product laptop = new Laptop();

        // ShoppingCart 객체 생성 및 의존성 주입
        ShoppingCart cart = new Shopping(laptop);

        // 상품 정보 출력
        cart.displayProduct();