인터페이스 문법은 알고 있지만 막상 왜 사용 되어야 하는지 개념을 잡고자 정리를 한다.

 

 

1.먼저 interface는 다른 클래스의 멤버들과 달리 다음과 같은 제약 사항을 가지고 있다.

-모든 멤버 변수는 public static final 이어야 하며, 이를 생략할수 있다.

-모든 메서드는 public abstract이어야 하며, 이를 생략할수 있다.

 

2.인터페이스의 추상메서드의 몸통을 구현하는 자손 클래스를 작성해야하는데 이때 인터페이스를 구현한다고 하며 키워드는 implements를 사용한다.

 

3.인터페이스 이름은 주로 able로 (~를 할수 있는 ) 의미로 파일(인터페이스명)으로 한다.(권장)

ex) playable

 

4.인터페이스를 구현한 자손 클래스는 인터페이스의 멤버 접근자보다 넓은 범위의 접근제어자를 지정해야 한다.

-interface의 멤버 void a(int a, int b)   //이넘을 자손 클래스에서 구현할때 private void a() 이런식으로 하면 에러가난다.

 

 

 

 

 

class Tv{

void autoPlay(ITV i){

i.play();

}

}

interface ITV {

public abstract void play();

}

class TV_1 implements ITV{

pbulic void play(){

System.out.println("play TV_1 class");

}

}

class TV_2 implements ITV{

public void Play(){

System.out.println("play TV_2 class");

}

}

public class InterfaceTest {

public static void main(String[] args){

Tv tv = new Tv();

tv.autoPlay(new TV_1());

tv.autoPlay(new TV_2());

}

}

 

 

※ 인퍼페이스를 사용 하는 이유는

확장성코드의 유연함이 주 목적

 

 

 출처 : http://lng1982.tistory.com/17