인터페이스(Interface)는 자바에서 다중 상속을 지원하기 위한 메커니즘 중 하나이며, 객체 지향 프로그래밍의 핵심 개념 중 하나이다. 인터페이스는 클래스가 구현해야 하는 메서드의 명세(specification)를 정의한다. 이를 통해 클래스는 인터페이스가 제공하는 메서드를 구현하여 특정 동작을 수행할 수 있다.
인터페이스의 특징
1. 추상 메서드(Abstract Method): 인터페이스는 추상 메서드만을 가질 수 있습니다. 즉, 메서드의 시그니처만을 정의하고 구현은 없습니다.
2. 상수(Constant): 인터페이스는 상수를 가질 수 있습니다. 상수는 자동으로 public static final로 설정됩니다.
3. 다중 상속(Multiple Inheritance): 클래스는 여러 개의 인터페이스를 구현할 수 있습니다.
interface Animal {
void sound();
}
class Dog implements Animal {
public void sound() {
System.out.println("멍멍");
}
}
Animal 인터페이스는sound 메서드를 정의한다. 그리고 Dog 클래스는 Animal 인터페이스를 구현하여 sound 메서드를 구현한다.
Interface와 abstract 추상클래스의 차이점
1. 구현: 추상 클래스는 일반 메서드와 추상 메서드를 모두 가질 수 있다. 반면 인터페이스는 추상 메서드만을 가질 수 있다. 따라서 추상 클래스는 일부 메서드를 구현할 수 있지만, 인터페이스는 메서드의 구현을 포함할 수 없다.
2. 다중 상속: 클래스는 여러 개의 인터페이스를 구현할 수 있지만, 추상 클래스는 단일 상속만을 지원한다. 따라서 인터페이스를 사용하면 다중 상속을 구현할 수 있다.
3. 목적: 추상 클래스는 클래스의 공통된 속성과 동작을 묶어 상속을 통해 코드를 재사용하는 데 주로 사용된다. 반면 인터페이스는 클래스 간에 동작을 규정하고 표준화하기 위해 사용된다.
일반적으로, 인터페이스는 서로 관련이 없는 클래스 간에 공통적인 동작을 정의할 때 사용되며, 추상 클래스는 서로 관련된 클래스들의 공통적인 속성과 동작을 추출하여 상속을 통해 재사용할 때 사용된다.
'JAVA' 카테고리의 다른 글
[JAVA] Anonymous Inner Class (0) | 2024.03.27 |
---|---|
[JAVA] Inner Class와 Outer Class (0) | 2024.03.27 |
[JAVA] Abstract 예제 (0) | 2024.03.26 |
[JAVA] Abstract (0) | 2024.03.26 |
[JAVA] static (0) | 2024.03.25 |