1. 인터페이스
    1. 서로 다른 하드웨어 장치들이 상호 데이터를 주고받을 수 있는 규격
    2. 규격이 필요한 이유
      1. 메인보드를 만드는 회사와 주변장치를 만드는 회사 사이에는 약속이 필요하기 때문
      2. 메인보드와 주변 장치 사이의 기계적 전기적 접속 규격과 데이터 전송 규격을 정해놓고, 이것만 지킨다면 메인보드나 주변 장치를 누가 만들건 문제없이 결합될 수 있다.
  2. 자바 인터페이스
    1. 상수와 추상 메소드로만 구성, 변수 필드 없음
      1. 메소드 : public abstract 타입으로 생략 가능
      2. 상수 : public static final 타입으로 생략 가능
      3. 인터페이스 샘플 소스
      4. 생략한 소스
    2. 인터페이스의 객체 생성 불가
  3. 인터페이스 간에 상속
    1. 인터페이스를 상속하여 확장된 인터페이스 작성 가능
    2. extends 키워드로 상속 선언
    3. 인터페이스 다중 상속 허용
  4. 인터페이스 구현
    1. 인터페이스를 상속받아, 모든 추상 메소드를 구현한 클래스 선언
    2. implements 키워드로 인터페이스 구현
    3. 여러 개의 인터페이스 동시 구현도 가능
    4. 클래스 상속과 인터페이스 구현을 동시에 할 수 있음
  5. 추상 클래스와 인터페이스 차이
    1. 추상클래스
      1. 추상함수가 1개 이상만 있으면 됨
      2. 구현된 함수가 있어도 됨
      3. 오버라이딩을 목적으로 추상함수를 사용, 즉 코드의 일부만 수정하기 위해 사용
    2. 인터페이스
      1. 모든 함수가 구현이 되어 있지 않고 명시만 되어 있음
      2. 다중 상속의 문제를 피하기 위해 사용
      3. 상속받는 자식 클래스에서 모든 함수를 구현해야 함
error: Content is protected !!