인터페이스 용도
1.구조화된 클래 사용(클래스 설계를 위해서)
2.표준화(메소드 생성을 강요하기 때문에 구조 동일화)
3.우회적 다중상속 지원
4.자료형으로 사용(서로 관계가 없는 클래스에 관계형성) 



인터페이스

//메뉴판을 보고 주문하면 진짜 음식이 생성되어 호출 // 다구현해둘 필요없다.
//여행후 목차-결과물에대한 목차//여행전 목차-목차대로 여행// 클래스르 도와주기위한 중요한 요소인 인터페이스!!

인터페이스의 탄생.
자바의 클래스 상속과 깊은관계

                                 
클래스                     
Object (toString) <=상속=> Parent (toString)<=상속=> Child (toString)(toString) 두개가 들어오면 명확히 구별할 방법이없다.
                       <=상속=> Uncle  (toString)<= 상속=X 다중상속 불허              그래서 원척적으로 X 다중상속 불허 단일상속만 가능

interface(추상메소드) <=구현=> 일반클래스 (추상메소드 구현)

인퍼페이스의 다중상속
interface<=상속=>S<=상속=> C  다중상속이 가능하다 : 클래스의 정의를 도와줄뿐 메모리엔 올라기지않는다.
           <=상속=>A<=상속=> 
인터페이스의 다중구현
   S       <=구현=> 클래스 Child  
   A       <=구현=> 
   C       <=구현=>                   
        

class Hello{    = 컴파일  => Hello.class
                                파일명으론 확인불가
interface I{      = 컴파일  => I.class

인터페이스는 클래스가 아니다. 클래스와는 다른요소 = 클래스를 정의하기위한 용도로 사용  //  인터페이스는 객체 생성 불가능
= 상수와 추상메소드 로만 만든다.

상수
public static final 이 원형이다. 모두 public하고 static(주소만으로 호출가능)하며 final(상수이기때문에 변경불가)하다. 

메소드
public abstract void 이 원형이다. 
인터페이스를 implements 하면 추상메소드를 구현하도록 의무화시킴 (강제성)
생략해도 호출하면 public abstract void 형태로 불러짐  // 구현시 public 생략불가

인터페이스의 용도
1.구조화된 클래스사용 (클래스설계)
  //글을쓸때 목차를 정해두고 글을쓰는것처럼
  //구현하고자하는 메소드를 정의해둬서 클래스 설계를 잘하기위해 미리 인터페이스 설계  
2.표준화 (구조 동일화)
  //인터페이스가 메소드를 강요하기때문에
3.우회적 다중상속지원
4.자료형 (★서로 관계가 없는 클래스간에 관계를 형성)

같은 인터페이스를 구현
클래스Child 구현=> 인터페이스 I <= 클래스B 구현

자바의 자료형
1.기본자료형
2.참조자료형 1.클래스
                  2.배열
                  3.인터페이스


구현후 호출영역 형변환
클래스 -> 인터페이스형 자동형변환 호출영역 감소
인터페이스 -> 클래스형 명시적형변환 호출영역 확장

'Java > Interface' 카테고리의 다른 글

인터페이스 공통자료형 공통표준화  (0) 2012.04.11
클래스 -> 인터페이스 형변환  (0) 2012.04.11
인터페이스 다중 상속  (0) 2012.04.11
인터페이스 2  (0) 2012.04.11
인터페이스 기본  (0) 2012.04.11

+ Recent posts