250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 나도코딩
- 오블완
- 인프런
- 네트워크
- 혼공자바
- Proxy Object
- Spring Data JPA
- java
- Wildcard
- entrySet
- Functional Interfaces
- Interface
- 혼공학습단
- 인터페이스
- 자율학습
- Lazy loading
- 접근제어자
- 혼공컴운
- 스프링 부트 3
- 티스토리챌린지
- types
- 접근 제어자
- dotnet
- 혼공
- noncluster index
- HashMap
- 0 시작
- Access Modifier
- cluster index
- literal
Archives
- Today
- Total
지금을 사는 사람
[Java] 인터페이스 (Interface) 본문
728x90
1. **Interface(인터페이스)란?
자바에서의 인터페이스는 추상화의 한 형태로, 클래스가 어떤 메서드를 구현해야 하는지를 정의하는데 사용됩니다. 인터페이스는 클래스와는 달리 다중 상속이 가능하며, 클래스에 비해 더 높은 수준의 추상화를 제공합니다.
public interface MyInterface {
void myMethod(); // 메서드 선언, 구현은 없음
}
2. Interface의 특징:
- 추상 메서드와 상수:
- 인터페이스는 추상 메서드(구현이 없는 메서드)와 상수(자동으로
public static final
로 간주)를 가질 수 있습니다.
- 인터페이스는 추상 메서드(구현이 없는 메서드)와 상수(자동으로
- 다중 상속:
- 클래스가 여러 인터페이스를 구현할 수 있어, 다중 상속의 효과를 가져옵니다.
- 인터페이스 간 상속:
- 인터페이스도 다른 인터페이스를 상속받을 수 있습니다.
- default 및 static 메서드:
- Java 8부터는 default 메서드와 static 메서드를 인터페이스에 추가할 수 있게 되었습니다.
3. Interface의 사용:
- 인터페이스 구현:
- 인터페이스를 구현하는 클래스에서는
implements
키워드를 사용하여 구현합니다.
- 인터페이스를 구현하는 클래스에서는
public class MyClass implements MyInterface {
@Override
public void myMethod() {
// 구현 내용
}
}
- 다중 인터페이스 구현:
- 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있습니다.
public class MyOtherClass implements MyInterface, AnotherInterface {
// myMethod()와 다른 인터페이스의 메서드들을 구현
}
- 인터페이스 간 상속:
- 인터페이스도 다른 인터페이스를 상속받을 수 있습니다.
public interface AnotherInterface extends MyInterface {
// MyInterface의 메서드를 상속받음
void anotherMethod();
}
4. default 및 static 메서드 사용:
Java 8부터 인터페이스에서는 default 메서드와 static 메서드를 정의할 수 있습니다.
- default 메서드:
- 인터페이스에서 기본적인 구현을 제공할 수 있습니다.
public interface MyInterface {
default void myDefaultMethod() {
// 기본 구현
}
}
- static 메서드:
- 인터페이스에서 정적 메서드를 제공할 수 있습니다.
public interface MyInterface {
static void myStaticMethod() {
// 정적 메서드 구현
}
}
5. Interface 사용의 Best Practices:
- 의미 있는 이름:
- 인터페이스와 메서드에는 의미 있는 이름을 사용하여 코드의 가독성을 높입니다.
- 단일 책임 원칙:
- 각 인터페이스는 특정 역할이나 책임을 가져야 합니다.
- 인터페이스의 버전 관리:
- 새로운 메서드가 필요할 경우 인터페이스를 새로 만들어 기존 코드를 수정하지 않고 버전을 업데이트할 수 있습니다.
6. 결론:
Java에서의 인터페이스는 다형성과 추상화를 제공하는 강력한 도구입니다. 다중 상속을 지원하고, default 및 static 메서드를 통해 더 유연한 디자인을 가능케 합니다. 적절한 인터페이스 사용은 코드의 확장성과 유지보수성을 높이는 데 기여합니다.
728x90
'Java' 카테고리의 다른 글
[Java] Hashmap에서 entryset을 사용하는 이유 (1) | 2024.01.03 |
---|---|
[Java] 추상클래스와 인터페이스의 차이 (0) | 2023.12.27 |
[Java] 상수(Constant) (0) | 2023.12.26 |
[Java] 접근제어자 Protected와 Default의 차이 (0) | 2023.12.22 |
[Java] 접근 제어자(Access Modifiers) (1) | 2023.12.22 |