DAY 12

KSH·2022년 5월 2일

interface : 특별한 class : class의 한 종류

  • abstract method로만 이루어진 특별한 class
  • class 대신 interface 선언을 사용한다
    -> 예) public interface Saram {}
  • 변수는 final static 변수만 사용한다
  • 정상적인 일반 메소드는 사용 못한다
  • 메소드는 오직 abstract method만 사용 가능하다
  • new를 통한 instance 생성이 불가능하다
  • interface를 상속받는 클래스에게 abstract method의 구현을 강제한다

interface의 탄생 배경

  • abstract 메소드를 상속 시켜서 상속 받는 클래스에게
    메소드 구현을 강제하고 싶은데 자바는 단일 상속만 가능

  • 기능적으로는 abstract class와 같다

  • 이미 상속을 받는 클래스에게 interface를 상속시켜서

  • 상속 받는 클래스에게 메소드 구현을 강제하기 위해 만들어졌다

    inner class : class 안에 class 있다

  • class 내부에 class 선언이 가능하다
    -> 특수한 상황에서 사용한다 (일반적으로 많이 사용 되지는 않는다)
    -> 클래스가 일회용으로 사용되는 경우

instance inner class : member inner class

  • class의 멤버가 위치한 자리에 선언되는 inner class
  • new를 통해 객체 생성
  • 일반적인 class를 class 내부로 옮긴 형태를 갖는다
  • 외부 클래스를 생성한 후에 inner class를 생성한다
    예) OuterClass out = new OuterClass();
    -> OuterClass.InnerClass in = out.new InnerClass();

static inner class : static member inner class

  • instance inner class를 static로 선언한 것
  • new 없이 자유로운 접근 가능

local inner class

  • instance inner class를 메소드 안에 선언한 것
  • 메소드가 실행되는 동안만 존재
  • 메소드가 종료되면 없어진다

anonymous inner class

  • 이름이 없는 inner class
  • 이름이 없으므로, 재 사용 불가
  • 일회용

0개의 댓글