728x90
반응형
인터페이스 (Interface)란?
- 현업에서 소스코드 작성 시 클래스를 처음부터 구현하게 된다면 코드의 가독성이 떨어지고 시간이 오래걸릴 것 입니다. 또한 팀별로 각각 다른 모듈을 만들 시 팀마다 방법이 다르기 때문에 호환성도 없고 일관성도 떨어지게 됩니다.
- 인터페이스를 통해 기본적으로 구현해야 할 메소드에 대한 규격들을 알려준다면 훨씬 효율적일 것 입니다.
- 즉, 인터페이스란 특정 기능을 개발하는데 있어 공통적인 기능을 명시하고 강제적으로 구현하게끔 하는 역할입니다.
- 인터페이스를 사용하게 된다면 자바의 다형성을 이용할 수 있고 이를 통해 유지보수성을 높일 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public interface usePhone {
//Phone 클래스와 연동하려는 모든 클래스들은
// 해당 인터페이스를 구현해야만한다!
// -> 강제!
public abstract void soundUp();
void soundDown();
void power();
static final int maxSound=100;
int minSound=0; // 변수가 아니고 상수이기 떄문에 0이라고 대입을 해줘야만 오류가 안뜸
// public static final이 생략되어있다.
|
cs |
- 인터페이는 interface라는 키워드를 사용해서 정의할 수 있습니다.
- 접근제어자로 public 또는 default가 명시될 수 있습니다.
- 인터페이스의 변수의 값은 "public static final" 키워드가 생략된 상수이므로 주어진 값으로만 사용가능 합니다.
- soundDown과 power은 "public abstract" 키워드가 생략된 메소드로 인터페이스를 구현하는 곳에서 오버라이딩을 강제시킵니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class Watch implements usePhone{
@Override
public void soundUp() {
// TODO Auto-generated method stub
}
@Override
public void soundDown() {
// TODO Auto-generated method stub
}
@Override
public void power() {
// TODO Auto-generated method stub
}
}
|
cs |
- 인터페이스 구현은 implements 키워드를 통해 일반 클래스에서 인터페이스를 구현합니다.
728x90
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 파일 입출력 (FileInputStream , FileOutputStream) (0) | 2022.06.27 |
---|---|
[JAVA] 예외 처리 (try, catch, finally) (0) | 2022.06.27 |
[JAVA] 추상메소드, 추상클래스 (abstract) (0) | 2022.06.27 |
[JAVA] 카드 사용 프로그램 (Equals() 메소드, instanceof 연산자) (0) | 2022.06.26 |
[JAVA] 접근제어자 private (Getter, Setter 메소드) (0) | 2022.06.26 |