인터페이스보다 추상 클래스를 선호하는 이유

@BigSquare 님의 관점은 공통 모듈의 재사용과 재정의 관점에서
상속과 파생을 통해 다형성을 지원하는 것에 더 중점을 둔 설명으로 보입니다.

그런데 인터페이스추상클래스 는 그 쓰임이나 성격이 좀 다르죠.

공통 모듈의 재사용과 재정의 관점에서 다형성을 제공해야하는 상황을 고려한다면 당연히 추상클래스가 정답입니다.

하지만 추상클래스는 다중 상속이 불가능하고 각 모듈의 재사용이 의미가 없는 상황 + 특정 상속관계가 아닌 멤버 구현 여부만을 타입의 기준으로 삼는 상황이라면 인터페이스가 정답입니다.

다른 글에 제가 잠깐 찌끄린 게 있는데

여기서 제가 강조했던 건 단순히 다형성을 제공 목적 그 자체가 아니라
쓰임과 용도가 다른 두 대상,
특히 인터페이스의 경우 Duck Typing 에 더 중점을 두고 있다… 라는 거였죠.

추상클래스를 이럴 때 사용하는 게 좋아~ 라는 차원의 설명이라면, 충분히 따따봉 인 설명이었는데

인터페이스추상클래스 를 동일 선상에 놓고
둘 중 하나를 선택해야할 근거 처럼 설명하신 부분이 논란의 여지를 준거 같슴다.

제 생각엔 둘은 동일 선상에 놓고 비교 선택할 대상은 아닌 걸로 보여요. ㅇㅅㅇ!

3개의 좋아요