추상클래스
기존에 만들던 클래스는 클래스 안에 메소드를 정의하고 직접 구현했음
→ 추상 클래스는 정의만 있을뿐 로직은 구현안되어 있음
→ 로직은 추상 클래스를 상속하는 클래스에서 해당 추상 메소드를 통해 필히 구현해야함
- 추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스
- 추상 클래스가 미완성 설계도라하면 인터페이스느 기본 설계도
추상클래스 vs 인터페이스
사용의도 차이점
추상클래스 : “~이다.”
인터페이스 : “~을 할 수 있는”
공통된 기능 사용 여부
인터페이스를 사용하게되면 공통으로 필요한 기능들도 모든 클래스에서 오버라이딩하여 재정의 해야하는 번거로움 발생
정리
- 추상클래스 사용 시기
상속 관계를 쭉 타고 올라갔을 때 같은 조상클래스를 상속하는데 기능까지 완전히 똑같은 기능이 필요한 경우
- 인터페이스 사용 시기
상속 관계를 쭉 타고 올라갔을 때 다른 조상클래스를 상속하는데 같은 기능이 필요한 경우