Java

자바에서 인터페이스라는게 대체 무엇인가

widerange 2023. 8. 1. 23:00

자바에서 인터페이스는 객체들이 어떤 기능을 제공하는 방법을 약속하는 규칙입니다. 


예를 들어볼게요. 우리가 일상생활에서 휴대폰으로 전화를 걸 때, 전화번호부에서 상대방의 전화번호를 찾고 전화를 거는 방법은 동일하지만, 전화번호부에서 찾는 방법은 다양합니다.

 

일부 사람들은 이름 순서대로 찾고, 다른 사람들은 지역별로 찾을 수 있습니다. 이런 찾는 방법을 각각 "전화번호부를 사용하는 인터페이스"라고 생각할 수 있습니다. 바로 방법이죠.

자바의 인터페이스도 이와 비슷하게, 객체들이 같은 기능을 제공하지만 실제로 그 기능을 어떻게 구현하는지는 다를 수 있습니다. 그래서 인터페이스를 사용하여 객체들이 어떤 기능을 제공하는지 알려주고, 실제 객체들은 그 기능을 구현하면서 자신만의 방법을 사용할 수 있습니다.

간단한 예시로 동물들이 소리를 내는 기능을 제공하는 인터페이스를 만들어보겠습니다. 이 인터페이스는 "소리내는 기능을 가진 동물들"이라고 생각할 수 있습니다. 그리고 인터페이스 안에는 "소리를 내는 메소드"가 정의되어 있습니다.

 

// 동물이 소리를 내는 기능을 제공하는 인터페이스
interface Soundable {
    void makeSound();
}

// 각 동물들은 이 인터페이스를 구현하여 소리를 내는 방법을 정의할 수 있습니다.

// 강아지 클래스
class Dog implements Soundable {
    public void makeSound() {
        System.out.println("멍멍!");
    }
}

// 고양이 클래스
class Cat implements Soundable {
    public void makeSound() {
        System.out.println("야옹!");
    }
}

// 동물들의 소리를 출력하는 메소드
public class Main {
    public static void main(String[] args) {
        Soundable dog = new Dog();
        Soundable cat = new Cat();

        dog.makeSound(); // "멍멍!" 출력
        cat.makeSound(); // "야옹!" 출력
    }
}

 

위의 예시에서 인터페이스인 Soundable은 동물들이 소리를 내는 기능을 정의합니다. 강아지(Dog)와 고양이(Cat) 클래스는 이 인터페이스를 구현하여 makeSound() 메소드를 각각 정의합니다. Main 클래스에서는 동물 객체를 만들어서 makeSound() 메소드를 호출하면, 각 동물이 자신만의 소리를 낼 수 있게 됩니다.

이렇게 인터페이스를 사용하면 여러 객체들이 같은 기능을 가지면서도 서로 다른 방식으로 기능을 구현할 수 있습니다. 이는 자바에서 유용하게 사용되는 다형성 개념과 연결되며, 코드의 재사용성과 유지보수성을 높이는 데에 도움을 줍니다. 자바에서 인터페이스는 프로그래밍의 유연성과 확장성을 높이는 강력한 도구입니다.