[Java] Java 인터페이스 (Interface) #15

소개

자바 프로그래밍에서 인터페이스 (Interface)는 다양한 객체 간에 상호 작용하기 위한 규약을 제공합니다. 이는 객체 지향 프로그래밍의 핵심 개념 중 하나로, 클래스가 특정한 메서드를 구현하도록 강제하는 역할을 합니다. Java 인터페이스에 대한 핵심 개념과 활용법을 다루겠습니다.

인터페이스란?

인터페이스는 메서드의 명세를 정의하지만 구현은 제공하지 않는다는 특징이 있습니다. 즉, 인터페이스는 ‘무엇(what)’을 해야 하는지를 정의하고, 실제 구현은 해당 인터페이스를 구현한 클래스에서 이루어집니다.

public interface MyInterface {
    void myMethod();
}

위의 예제에서 MyInterfacemyMethod라는 메서드를 정의하고 있습니다. 하지만 이 메서드의 내용은 인터페이스 안에 직접 구현되어 있지 않습니다.

[Java] Java 인터페이스 (Interface) #15

인터페이스의 장점

1. 다중 상속 지원

자바에서는 클래스는 하나의 클래스만 상속받을 수 있지만, 인터페이스는 여러 개를 구현할 수 있습니다. 이는 다중 상속을 효과적으로 지원하며, 코드의 재사용성을 높입니다.

2. 강한 결합을 피하기

인터페이스를 사용하면 클래스 간의 강한 결합을 피할 수 있습니다. 클래스가 특정 인터페이스를 구현한다면, 해당 클래스는 인터페이스가 요구하는 메서드를 반드시 구현해야 합니다.

인터페이스의 구현

인터페이스를 구현하기 위해서는 implements 키워드를 사용합니다. 아래의 예제에서는 MyClassMyInterface를 구현하고 있습니다.

public class MyClass implements MyInterface {
    @Override
    public void myMethod() {
        // 메서드의 구현 내용 작성
        System.out.println("MyMethod가 호출되었습니다.");
    }
}

인터페이스의 활용 예제

예제 1: 동물 인터페이스

public interface Animal {
    void makeSound();
}

public class Dog implements Animal {
    @Override
    public void makeSound() {
        System.out.println("멍멍!");
    }
}

public class Cat implements Animal {
    @Override
    public void makeSound() {
        System.out.println("야옹!");
    }

예제 2: 연산 인터페이스

public interface Calculator {
    int add(int a, int b);
    int subtract(int a, int b);
}

public class BasicCalculator implements Calculator {
    @Override
    public int add(int a, int b) {
        return a + b;
    }

    @Override
    public int subtract(int a, int b) {
        return a - b;
    }
}

마무리 Java 인터페이스

Java 인터페이스는 객체 지향 프로그래밍에서 중요한 역할을 하는데, 코드의 유연성과 확장성을 높이는 데 기여합니다. 다양한 예제를 통해 인터페이스의 활용법을 익히고, 프로젝트에서 이를 적절히 활용하여 더욱 모듈화된 코드를 작성해보세요.

이상으로 Java 인터페이스에 대한 간략한 소개를 마칩니다. 더 많은 정보를 얻고 싶다면 Java 공식 문서를 참고하시기 바랍니다.

Happy coding! 🚀

[Java] Java 추상 클래스 (Abstract Class) #14
[Java] Java 추상 클래스 (Abstract Class) #14
[Java] Java 예외 처리 (Exception Handling) #16
[Java] Java 예외 처리 (Exception Handling) #16

Leave a Comment