Develop/JAVA
2021. 12. 1.
인터페이스, 추상클래스, Enum이란?
1. 인터페이스와 추상클래스 자바8 이후로 인터페이스에 default method를 구현할 수 있게 되면서 추상클래스와의 차이가 모호해진 부분이 있다. 따라서 인터페이스와 추상클래스를 사용하는 상황을 각각 정리해보려고 한다. 추상클래스 관련성이 높은 클래스 간에 코드를 공유하고 싶은 경우 추상클래스를 상속받은 클래스들이 공통으로 가지는 메소드와 필드가 많거나, public 이외의 접근제어자(protected, private) 사용이 필요한 경우 non-static, non-final 필드 선언이 필요한 경우. 즉, 각 인스턴스에서 state 변경을 위한 메소드를 선언할 수 있다. 인터페이스 서로 관련성이 없는 클래스들이 인터페이스를 구현하게 되는 경우에 사용한다. 예를 들어, Comparable, Clo..