[Java]Interface

dnjsrms.lee·2022년 6월 3일
0

Java

목록 보기
8/14
post-thumbnail

인터페이스(Interface)

  • 문법적으로 추상 메소드만 가짐
  • 기능적으로 추상클래스와 같음
  • 추상성이 극대화 된 것
  • 추상 메소드 앞에 abstract를 생략해도 컴파일 시점에 자동 추가 됨
  • 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 할 수 있음
  • 상속에서의 형 변환과 동일한 의미
  • 클래스 상속과 달리 구현 코드가 없으므로 여러 인터페이스를 구현할 수 있음 ( cf. extends)
  • 형 변환되는 경우 인터페이스에 선언된 메서드만을 사용가능함
  • 변수를 가질 수도 없고 구현된, {} 가 있는 메소드 가질 수 없음. 상수와 추상 메소드만 가짐.
  • 추상 클래스와 인터페이스는 무조건 최상위 부모로 사용하기 위해 만드는 것임
  • 추상 메소드만 가질 수 있고 final, static 자동 할당
interface 인터페이스 이름{
상수
...
추상메소드
}
  • 상수
    • 멤버변수와의 구분을 위해 모두 대문자 작성 및 단어를 밑줄(_)로 연결(약속) / 초기값을 설정 해 둬야 함
    • final 키워드 ⇒ 값이 정해지면 변하지 않음
  • 인터페이스는 최상위 부모 클래스로만 사용 됨.
    • extends가 아닌 implements 사용
    • 하지만 인터페이스 간의 상속은 implements가 아닌 extends사용
    • 하나의 클래스가 부모가 2개 이상인 경우를 java에서 허용하지 않음 => 단일 상속만 지원
    • 인터페이스 간에는 다중 상속이 가능
    • 다중 상속은 콤마(,) 사용
class 클래스 이름 implements 인터페이스, 인터페이스 {
...
}
  • 추상 클래스와 인터페이스
    • ‘is a’관계의 성립 유무에 따라 나뉨
    • 성립 시 부모는 추상 클래스로 만들고
    • 성립하지 않을 시 부모를 인터페이스로 만들야 함
profile
little by little slowly

0개의 댓글