본문 바로가기

JAVA

[JAVA] 인터페이스 Interface

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
반응형