일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- jQuery
- 중도인출
- 인출수수료
- 추가납입
- 교보생명
- 가입
- Vue.js
- 보험료
- python
- 문자열
- javascript
- PythonProgramming
- 보험
- 코딩
- 수수료
- 교보
- 납입
- 심장질환
- 자바스크립트
- Java
- 프론트엔드
- 특약
- 프로그래밍
- 변환
- 파이썬
- 리스트
- 사망
- 뇌출혈
- 급성심근경색증
- 웹개발
- Today
- Total
SeouliteLab
[Java/자바] Interface: 인터페이스란? 본문
Java에서 인터페이스(interface)는 클래스와 비슷하게 동작하지만, 메서드의 몸체(body)를 포함하지 않는 일종의 추상 클래스입니다. 인터페이스는 객체 간의 통신을 위한 규약(Contract)을 정의하며, 다중 상속을 지원하기 위한 도구로 사용됩니다. 이번 포스트에서는 Java 인터페이스에 대해 자세히 알아보고, 다양한 예제를 통해 이해해보겠습니다.
1. 인터페이스의 정의
인터페이스는 interface
키워드를 사용하여 정의됩니다. 메서드 선언은 메서드 이름과 매개변수 목록만을 포함하고, 메서드의 몸체는 포함하지 않습니다. 인터페이스는 다음과 같이 정의됩니다:
public interface MyInterface {
void myMethod();
}
위의 예제에서 MyInterface
인터페이스는 myMethod
라는 메서드를 정의합니다. 이 메서드는 어떤 구현체에서도 반드시 구현되어야 합니다.
2. 인터페이스의 구현
인터페이스를 구현하는 클래스는 implements
키워드를 사용하여 구현합니다. 구현 클래스는 인터페이스에서 정의한 모든 메서드를 구현해야 합니다. 예를 들어:
public class MyClass implements MyInterface {
public void myMethod() {
// 메서드 구현
}
}
위의 예제에서 MyClass
클래스는 MyInterface
인터페이스를 구현하고, myMethod
를 구현합니다.
3. 인터페이스의 다중 상속
Java에서는 클래스는 다중 상속을 지원하지 않지만, 인터페이스는 다중 상속을 지원합니다. 클래스가 여러 개의 인터페이스를 구현할 수 있습니다. 예를 들어:
public interface Interface1 {
void method1();
}
public interface Interface2 {
void method2();
}
public class MyClass implements Interface1, Interface2 {
public void method1() {
// method1의 구현
}
public void method2() {
// method2의 구현
}
}
위의 예제에서 MyClass
클래스는 Interface1
과 Interface2
인터페이스를 모두 구현하고 있습니다.
4. 인터페이스의 활용
인터페이스는 다형성(polymorphism)을 구현하는 데 주로 사용됩니다. 즉, 여러 클래스가 동일한 인터페이스를 구현하면 클라이언트는 해당 인터페이스의 메서드를 호출하며, 런타임에 어떤 구현체가 호출될지 결정됩니다.
public interface Animal {
void sound();
}
public class Dog implements Animal {
public void sound() {
System.out.println("멍멍");
}
}
public class Cat implements Animal {
public void sound() {
System.out.println("야옹");
}
}
위의 예제에서 Dog
클래스와 Cat
클래스는 모두 Animal
인터페이스를 구현하고 있습니다. 따라서 다음과 같이 다형성을 활용할 수 있습니다:
public class Main {
public static void main(String[] args) {
Animal dog = new Dog();
Animal cat = new Cat();
dog.sound(); // 출력 결과: 멍멍
cat.sound(); // 출력 결과: 야옹
}
}
'프로그래밍' 카테고리의 다른 글
[Java/자바] Stream을 이용하여 List를 Map으로 변환하는 방법 (0) | 2024.03.15 |
---|---|
[Java/자바] List를 Map으로 변환하는 방법 (0) | 2024.03.15 |
REST API: Representational State Transfer 란? (0) | 2024.03.14 |
[Java/자바] Spring RestTemplate 설정 방법 (0) | 2024.03.14 |
[Java/자바] Spring RestTemplate을 활용한 웹 서비스 통신 (0) | 2024.03.14 |