일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- go
- cosine similarity metric
- kube-prometheus-stack
- 배포 파이프라인
- apollo router
- body size
- gitops
- UnBuffered channel
- esbuild
- 코사인 유사성 메트릭스
- GoF
- elasticsearch
- Intellij
- 사설 ip
- Kubernetes
- 티스토리챌린지
- goland
- intellij ide
- 오블완
- 배포 프로세스
- 디자인패턴
- Buffered channel
- http 413
- m4 pro
- Infra
- AWS
- typescript
- javascript
- golang
- Logrus
Archives
- Today
- Total
Fall in IT.
인터페이스란? 본문
반응형
인터페이스(interface)
인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘
일반 메서드 또는 멤버변수를 구성원으로 가질수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있다.
인터페이스는 구현된 것은 아무 것도 없고 밑그림만 그려져 있는 '기본 설계도' 라 할 수 있다.
- 인터페이스 작성
interface 인터페이스이름 {
public static final 타입 상수이름 = 값;
public abstract 메서드이름(매개변수목록);
} - 모든 멤버변수는 public static final 이어야 하며, 이를 생략 할 수 있다.
- 모든 메서드는 public abstract 이어야 하며, 이를 생략 할 수 있다.
- ex)
interface CardService {
int clover = 1; // public static final int clover = 1;
int diamond = 2; // public static final int diamond = 1;
public String getCardKind(); // public abstract String getCardKind();
}
인터페이스의 상속
인터페이스는 인터페이스로부터만 상속받을 수 있으며, 클래스와는 달리 다중상속, 즉 여러 개의 인터페이스로부터 상속을 받는 것이 가능하다.
인터페이스는 인터페이스로부터만 상속받을 수 있으며, 클래스와는 달리 다중상속, 즉 여러 개의 인터페이스로부터 상속을 받는 것이 가능하다.
ex)
interface Movable {
void move(int x, int y); // 지정된 위치로 이동하는 기능
}
void move(int x, int y); // 지정된 위치로 이동하는 기능
}
interface Attackable {
void attack(Unit u); //지정된 대상을 공격하는 기능
}
void attack(Unit u); //지정된 대상을 공격하는 기능
}
interface Fightable extends Movable, Attackable {
}
인터페이스 구현
ex) Fighter 클래스는 Fightable 인터페이스를 구현한다.
class Fighter implements Fightable {
public void move(int x, int y);
public void attack(Unit u);
}
public void move(int x, int y);
public void attack(Unit u);
}
상속과 구현을 동시에 할 수도 있다.
인터페이스의 장점
- 개발시간을 단축시킬 수 있다.
- 표준화가 가능하다.
- 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
- 독립적인 프로그래밍이 가능하다.
반응형
'프로그래밍언어 > Java' 카테고리의 다른 글
static 잘 활용하기 (0) | 2016.03.08 |
---|---|
StringBuffer와 StringBuilder의 차이점 (0) | 2016.03.03 |
타입에 안전한 열거형 enum (0) | 2016.03.03 |
for문(반복문) 사용시 조심해야할 점 (0) | 2016.03.02 |
ByteArray를 이미지 파일로 저장하는 방법 (4) | 2016.02.28 |
Comments