티스토리 뷰
★ 인터페이스(interface)
- 인터페이스 (interface)는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 한다.
인터페이스는 추상 메서드와 상수로만 이루어져 있다.
구현된 코드가 없기 때문에 당연히 인터페이스로 인스턴스롤 생성할 수도 없다.
이 인터페이스 사용 방법을 알아보겠다.
1. Calc 인터페이스 만들기

계산기를 만들기 위한 코드를 선언했다.
원주율을 뜻하는 PI 변수와 오류가 났을 때 사용할 ERROR 변수를 선언했다.
사칙 연산을 수행하기 위해 add ( ), substract ( ) 메서드를 선언했다.
인터페이스에서 선언한 변수는 모두 컴파일 과정에서 값이 변하지 않는 상수로 자동 변환이 된다.
public static final 예약어를 쓰지 않아도 무조건 상수로 인식한다.
하지만, 여기서 명시적으로 보여주기 위해 public static final 예약어를 썼다.
2. 클래스에서 인터페이스 구현하기.

Calc 인터페이스를 구현할 구현 클래스 'CompleteCalc'를 만들었다
1. 선언한 인터페이스를 클래스가 사용하는 것을 '클래스에서 인터페이스를 implemets (구현)한다.' 라고 표현한다.
상위 클래스에 구현한 기능을 학위 클래스에서 확장한다는 의미로 extends 예약어를 사용하였다.
인터페이스에서는 인터페이스에 선언한 기능을 클래스가 구현한다는 의미로 implements 예약어를 사용한다.
2. implements 예약어를 사용한 후,
The type CompleteCalc must implement the inherited abstract method Calc.add(int, int) 오류 메시지가 나타난다.
추상 메서드를 사용하는 옵션을 선택해 오버라이드를 해준다.
Calc 인터페이스의 add( ) 추상 메서드와 substract ( ) 추상 메서드를 구현한다.
4. 추상 메서드 add( ) 에 int 타입의 C를 추가해 준 creativeCalc 클래스를 만들었다.

3. 결과를 출력하기 위해 App 클래스를 생성하였다.

CreativeCalc 인스턴스를 생성하면

13이 출력되고,
CompleteCalc 인스턴스를 생성하면,


8이 출력되는 것을 볼 수 있다.
이처럼,
자동차 타이어를 갈아 넣어 끼우듯이 필요한 클래스의 인스턴스를 생성할 수 있다.
그리고 해당 인터페이스가 구현해 놓은 메서드를 강제로 사용해야한다.

'차곡차곡 > Java' 카테고리의 다른 글
| [Java] 예외 처리 개념 정리 ( Exception handling) (0) | 2022.05.15 |
|---|---|
| [Java] 인터페이스 - 인터페이스의 다형성 (0) | 2022.05.15 |
| [Java] 추상 클래스 - (1) 추상 클래스 (0) | 2022.05.15 |
| [Java] 데이터 파싱하는 부분을 별도의 클래스로 분리하기. (0) | 2022.05.11 |
| [Java] 다형성 - 상위 클래스 타입의 참조 변수로 하위 클래스의 인스턴스를 참조할 수 있다???? (0) | 2022.05.10 |
- Total
- Today
- Yesterday
- React를 이용한 Counter 만들기
- 콘솔 창 한글 깨짐
- 로제 파스타 맛집
- 꾸덕꾸덕 파스타 맛집
- 데이터베이스 스키마 자동 생성
- 토마호크 맛집
- react counter
- pip 설치 오류
- JPA라이브러리
- Counter 만들기
- 버튼누르면전구이미지변하기
- 리액트 이벤트 처리하기
- 엔티티매니저팩토리
- tick 만들기
- DDL 생성 콘솔 출력
- 영주역 맛집
- 영주 한우
- intellij 한글 깨짐
- 풍기역맛집
- 온량 서울숲점
- JPQL이란
- 엘리먼트 렌더링
- JPA애플리케이션개발코드
- JPA
- 영속성 관리
- fragment태그
- 리액트 엘리먼트 렌더링하기
- React
- JPA 기본키 매핑 전략
- 커틀렛 맛집
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
