추상클래스

  • 상속하는 조상에서 사용안되는 메소드
    • 오버라이드되서 사용되는 메소드
  • abastact class 클래스명{}로 메소드 선언
    • 구현부 생략
    • class도 abstract로 선언해야함
    • 뒤에 ;를 붙여준다.
  • 객체 생성x
    • new불가
  • 상위 클래스 타입으로 자식 참조 가능
    • 다형성
  • 추상메소드 구현을 안할시 abstract클래스로 선언되야함

인터페이스

  • 일반 메서드 전부 abstract
    • jdk8부터 static method, default method추가
  • interface라고 선언
    • public static final 생략
    • pubic abstract 생략
  • extends로 상속가능
    • 다중상속
  • implements로 구현
    • 여러개 implements가능

default

  • 구현부가 있는 메서드
    • default를 추가해서 구현
      • public으로 고정
  • interface에 추가 메서드를 할때 반드시 구현할 필요없는 메서드로 사용가능
    • 1.8부터 만들어짐
    • 우선순위
      • 상속 method, default method
        • 상속이 우선
      • defulat method , default method
        • 무조건 오버라이드 해서 사용

static

  • 별도의 객체가 필요없음
  • 구현체 클래스 없이 바로 인터페이스 이름으로 접근