추상클래스
하나 이상의 추상 메서드를 포함하는 클래스
하위 클래스들의 공통점들을 모아 추상화하여 만든 클래스
인터페이스
모든 메서드가 추상 메서드로 이루어진 것
다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스
공통점
추상 클래스와 인터페이스의 공통점은 둘 다 추상 메서드를 가지고 있다는 것입니다.
new 키워드로 인스턴스화할 수 없고 상속받아 구현한 구현체의 인스턴스를 사용해야 합니다.
그리고 추상 메서드를 반드시 구현해야 합니다.
추상클래스와 인터페이스의 차이는 뭔가요?
추상클래스
단일 상속만 가능합니다.
추상 메서드 외에 일반적인 필드, 메서드, 생성자를 가질 수 있습니다.
클래스 간의 연관 관계를 구축하는 것, 클래스 멤버들을 통합 및 확장하는 용도입니다. (집을 복사, 복제하는 느낌)
인터페이스
다중 상속이 가능합니다.
내부 멤버가 없는 빈 인터페이스를 선언하여 마커 인터페이스로 이용하기도 합니다.
구현 객체가 같은 동작을 한다는 것을 보장하는, 강제하는 용도입니다. (집의 설계도, 계약서 느낌)
참고
https://youtu.be/yQ_WvWm3oKs?si=Pt4vI0VFXwRfJ8Bd
https://inpa.tistory.com/entry/JAVA-☕-인터페이스-vs-추상클래스-차이점-완벽-이해하기#인터페이스_정리