자바에서 인터페이스(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 |