Notice
Recent Posts
Recent Comments
Link
forest_moon
[Java] 자바, 객체지향! 인터페이스(interface) 본문
한 객체가 다양한 역할을 수행할 수 있다. 이를 위한 개념. 인터페이스를 학습해보자.
- 인터페이스란
- 인터페이스 정의 및 구현
- 인터페이스의 장점
1. 인터페이스란
인터페이스란, 역할을 부여하는 것이다.
특징?
인터페이스는 추상 메소드로 구성된다. 추상 메소드란, 중괄호 내부가 없는 껍데기 메소드이다.
실생활 예
스마트폰은 알람, 전화기, 메신저의 역할을 한다.

2. 인터페이스의 정의 및 구현
코드 형식?
인터페이스의 형식은 아래와 같다.
interface NAME {
// 프로토타입 메소드들..
}
코드 예
Alarm 인터페이스 만들어보자. 그 기능으로는 비프음 내기와 음악 재생을 추가한다. 메소드에 중괄호가 없음을 주의하자. 이러한 메소드를 추상 메소드라 한다.
interface Alarm {
public void beep(); // 추상메소드
public void playMusic(); // 추상메소드
}
인터페이스 구현을 선언
위에서 만든 인터페이스를 클래스에 구현하자. 이를 위해 implements 키워드를 사용한다.
// SmartPhone 클래스가 Alarm 역할을 수행하기로 함!
class SmartPhone implements Alarm {
// 내부 구현 생략..
}
추상 메소드 오버라이딩
이제 Alarm 인터페이스의 모든 추상 메소드를 재정의(오버라이딩) 해야 한다. 중괄호 내부가 없기 때문이다.
class SmartPhone implements Alarm {
// 프로토타입 메소드를 재정의!
public void beep() {
System.out.println("삐~ 삐삑, 삐비비빅!");
}
// 프로토타입 메소드를 재정의!
public void playMusic() {
System.out.println("아침 해가 빛나는~ 끝이 없는 바닷가!");
}
}
3. 인터페이스의 장점
프로그램 설계의 명확성
인터페이스를 사용하면 프로그램 설계가 보다 명확해 진다.
관계성 부여
서로 다른 객체들이 같은 인터페이스를 구현한다면, 인터페이스를 타입으로 하여 업캐스팅 할 수 있다.

다형성
여러 인터페이스를 구현하게 함으로써, 한 객체를 여러 타입으로 해석할 수 있게 된다. 이러한 특징을 다형성이라 한다.

요약

인터페이스란
- 인터페이스란, 역할을 부여하는 것이다.
- 인터페이스는 추상 메소드로 구성된다.
- 추상 메소드란, 중괄호 내부가 없는 껍데기 메소드이다.
인터페이스 정의 및 구현
- 인터페이스 구현 시, implements 키워드를 사용한다.
- 해당 인터페이스(역할)를 구현하는(부여받은) 클래스를 구현체 클래스라 한다.
- 구현체 클래스는 모든 추상 메소드를 오버라이딩(재정의)해야 한다.
인터페이스의 장점
- 프로그램 설계의 명확성
- 서로 다른 객체에게 관계성 부여(업캐스팅 가능)
- 한 객체를 다양한 인터페이스로 해석 가능(다형성)
'JAVA > inflearn정리' 카테고리의 다른 글
[Java] 자바, 객체지향! 상속, 클래스의 확장 (0) | 2023.04.18 |
---|---|
[Java] 자바, 객체지향! 자바 API (0) | 2023.04.18 |
[Java] 자바, 객체지향! 접근 제한자와 게터 세터 (0) | 2023.04.17 |
[Java] 자바, 객체지향 레퍼런스와 static (0) | 2023.04.17 |
[Java] 자바, 객체지향 프로그래밍.클래스와 객체 (0) | 2023.04.05 |