대충 차이점은 알고있는데 상태를 가질 수 있다는 점을 제외하면 인터페이스도 default method나 static method를 가질 수 있잖아.
그리고 인터페이스는 다중 상속이 가능하기 때문에 타입 계층을 정의할 때도 유연하게 사용할 수 있고.
그렇다면 대부분의 계층 설계를 추상 클래스로 할 필요 없이 인터페이스로 하고 구현체에서 구현하면 될 것 같은데 추상 클래스를 사용해야만 하는 경우가 있다면 언제라고 생각하십니까?
대충 차이점은 알고있는데 상태를 가질 수 있다는 점을 제외하면 인터페이스도 default method나 static method를 가질 수 있잖아.
그리고 인터페이스는 다중 상속이 가능하기 때문에 타입 계층을 정의할 때도 유연하게 사용할 수 있고.
그렇다면 대부분의 계층 설계를 추상 클래스로 할 필요 없이 인터페이스로 하고 구현체에서 구현하면 될 것 같은데 추상 클래스를 사용해야만 하는 경우가 있다면 언제라고 생각하십니까?
공통 메소드를 넘어 공통 멤버변수가 필요하면 abstract class를 써야하겠지
상태를 가진다는거 잘적어놨잖아
ㅇㅇ 상태를 가져야 할때임
추상클래스는 인터페이스보다 추상 단계가 낮은거임 딱 그 차이
쓸데없이 추상 단계가 높으면 복잡도만 올라감