추상화
- 구현부가 없는 메서드를 정의하는 것
- 인터페이스, 추상클래스는 구현부가 없는 메서드를 가질 수 있음
인터페이스
- 구현클래스가 반드시 구현할 기능을 정의할 때 사용
- 인터페이스는 구현클래스를 구현 할 때 표준(기준, 스펙)이 됨
- 인터페이스에 정의된 메서드는 구현클래스에서 기능 구현 시, (재정의)
구현메서드의 접근제한자, 반환타입, 메서드명, 매개변수 타입이 어떻게 정의해야하는지 알려줌
- 인터페이스에 정의된 구현부가 없는 메서드와 구현클래스의 구현메서드는 메서드 선언부가 같아짐
- 같은 인터페이스를 구현한 구현클래스들은 구체적인 구현내용은 다를 수 있지만 사용방법은 완전 동일
추상클래스
- 구현클래스의 구현부담을 감소시키기 위해서 사용
- 각 구현클래스마다 동일한 구현내용을 가지는 것은 추상클래스에서 구현 후 상속
- 구현클래스마다 구체적인 구현내용이 다른 것은 구현부가 없는 메서드 상태로 두면 각 구현클래스 내에서 오버라이딩
(구현 내용이 동일한 기능은 상속받아서 사용, 내용이 다른 것은 재정의)
- 추상클래스는 인터페이스와 구현클래스를 연결하는 다리 역할을 함