개발
추상클래스와 인터페이스 차이
pastime
2021. 8. 11. 20:41
728x90
추상클래스란?
추상클래스는 일반 클래스와 별 다를 것이 없습니다. 단지, 추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스입니다. 그래서 미완성 설계도라고도 표현합니다. 상속을 위한 클래스이기 때문에 따로 객체를 생성할 수 없습니다.
인터페이스란?
추상클래스가 미완성 설계도라면 인터페이스는 기본 설계도라고 할 수 있습니다. 인터페이스도 추상클래스처럼 다른 클래스를 작성하는데 도움을 주는 목적으로 작성하고 클래스와 다르게 다중상속(구현)이 가능합니다.
추상클래스 VS 인터페이스 공통점
추상클래스와 인터페이스는 선언만 있고 구현 내용은 없는 클래스
인스턴스화(객체를 생성할수 없다)를 할 수 없다.
추상 클래스는 extends로 상속받은 자식들과 인터페이스를 implements하고 구현한 자식들만 객체를 생성
추상클래스 VS 인터페이스 차이점
1. 사용의도 차이점
추상클래스는 IS - A "~이다".
인터페이스는 HAS - A "~을 할 수 있는".
2. 공통된 기능 사용 여부
만약 모든 클래스가 인터페이스를 사용해서 기본 틀을 구성한다면... 공통으로 필요한 기능들도 모든 클래스에서 오버라이딩 하여 재정의 해야하는 번거로움이 있습니다.
728x90