추상클래스
- 상속하는 조상에서 사용안되는 메소드
- 오버라이드되서 사용되는 메소드
- 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으로 고정
- default를 추가해서 구현
- interface에 추가 메서드를 할때 반드시 구현할 필요없는 메서드로 사용가능
- 1.8부터 만들어짐
- 우선순위
- 상속 method, default method
- 상속이 우선
- defulat method , default method
- 무조건 오버라이드 해서 사용
- 상속 method, default method
static
- 별도의 객체가 필요없음
- 구현체 클래스 없이 바로 인터페이스 이름으로 접근