JAVA/포스팅

자바 인터페이스

짜집퍼박사(짜박) 2023. 11. 13. 00:17

자바에서 인터페이스(interface)는 추상 메서드와 상수(static final 변수)의 집합을 정의하는데 사용됩니다. 인터페이스는 일종의 추상 클래스로 생각할 수 있으며, 클래스와 달리 다중 상속이 가능합니다. 인터페이스를 구현하는 클래스는 인터페이스에 정의된 모든 메서드를 구현해야 합니다.

인터페이스를 선언할 때에는 interface 키워드를 사용합니다. 메서드는 추상 메서드로 선언되며, 따로 몸체를 가질 수 없습니다. Java 8부터는 디폴트 메서드(default method)와 정적 메서드(static method)를 인터페이스에 추가할 수 있게 되었습니다.

다음은 간단한 인터페이스의 예시입니다.

// 인터페이스 선언
interface Printable {
    // 추상 메서드
    void print();

    // 디폴트 메서드 (Java 8부터 지원)
    default void display() {
        System.out.println("Default display method");
    }

    // 정적 메서드 (Java 8부터 지원)
    static void staticMethod() {
        System.out.println("Static method");
    }
}

// 인터페이스 구현
class Printer implements Printable {
    // 추상 메서드의 구현
    public void print() {
        System.out.println("Printing...");
    }
}

public class Main {
    public static void main(String[] args) {
        // 인터페이스를 구현한 클래스의 인스턴스 생성
        Printer printer = new Printer();

        // 추상 메서드 호출
        printer.print(); // Printing...

        // 디폴트 메서드 호출
        printer.display(); // Default display method

        // 정적 메서드 호출 (인터페이스 이름으로 호출)
        Printable.staticMethod(); // Static method
    }
}

 

인터페이스는 다음과 같은 특징을 가지고 있습니다.

 

1. 추상 메서드(Abstract Method)
인터페이스 내에서 선언되는 메서드는 기본적으로 추상 메서드입니다. 이 메서드는 구현을 가지지 않으며, 구현은 인터페이스를 구현하는 클래스에서 이루어져야 합니다.

2. 디폴트 메서드(Default Method)
Java 8에서 도입된 개념으로, 인터페이스 내에서 메서드에 기본 구현을 제공할 수 있습니다. 구현 클래스에서 이 메서드를 오버라이드할 수도 있습니다.

3. 정적 메서드(Static Method)
Java 8에서 도입된 개념으로, 인터페이스 내에서 정적 메서드를 정의할 수 있습니다. 정적 메서드는 인터페이스 이름을 통해 직접 호출됩니다.

4. 상수(Constant)
인터페이스 내에서 선언된 변수는 상수로 취급되며, 기본적으로 public, static, final 키워드를 가집니다.

인터페이스는 다형성(polymorphism)을 구현하는 중요한 도구 중 하나로, 여러 클래스가 동일한 인터페이스를 구현함으로써 유연하고 확장 가능한 코드를 작성할 수 있게 합니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 인터페이스의 상속  (0) 2023.11.13
자바 인터페이스의 작성  (0) 2023.11.13
자바 추상클래스의 작성  (0) 2023.11.12
자바 추상클래스  (0) 2023.11.12
자바 매개변수의 다형성  (0) 2023.11.12