본문 바로가기
JAVA

[JAVA] Interface

by kwh_coding 2024. 3. 27.

인터페이스(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