1) 추상 메서드를 포함하고 있는 미완성 클래스
2) 미완성된 부분이 없어도 객체로 생성되어서는 안 되는 클래스
[접근제한자] abstract class 클래스명 { }
상속 시 반드시 구현해야 하는 메서드 (오버라이딩 강제화)
[접근제한자] abstract 반환형 메서드명(자료형 변수명);
← 중괄호 X
상수형 필드와 추상 메서드만을 작성할 수 있는 추상 클래스의 변형체 (기초 설계도)
메서드의 통일성을 부여하기 위해 추상 메서드만 따로 모아놓은 것으로,
상속 시 인터페이스 내에 정의된 모든 추상 메서드를 구현해야 함
[접근제한자] interface 인터페이스명 { }
⭐ 인터페이스는 Object 클래스를 상속 받지 못하기 때문에 클래스가 아님 !
extends : 클래스 간의 상속, 인터페이스 간의 상속 관계
implements : 인터페이스 - 클래스 상속 관계
🌼 마커 인터페이스 : 어떤 메서드도 담고 있지 않지만, 특정 표식을 위한 용도로 사용
(표식이 되어있는 클래스를 한 번에 취급할 수 있다.)