코틀린에서의 인터페이스와 추상클래스의 차이에 대해 알아보자 구현적 관점에서의 차이 개념적 관점에서의 차이 구현적인 관점에서의 차이 프로퍼티 선언 다중, 단일 상속 구현적인 관점에서 (코틀린의) 인터페이스와 추상클래스의 큰 차이는 없다고 생각한다. 프로퍼티 선언 인터페이스와 추상클래스 모두 자체로는 생성이 불가능하며 구현부(함수 바디)가 있는 함수가 존재할 수 있다. 뿐만 아니라 프로퍼티 또한 둘다 선언할 수 있는데 여기서 조금의 차이가 발생한다. 코틀린 인 액션 (이하 코인액)에서는 이렇게 말한다. (말이 어렵다면 넘어가도 좋다) 인터페이스에는 추상 프로퍼티뿐 아니라 게터와 세터가 있는 프로퍼티를 선언할 수도 있다. 물론 그런 게터와 세터는 뒷받침하는 필드를 참조할 수 없다. (뒷받침하는 필드가 있다면 ..
인터페이스
코틀린의 인터페이스를 알아보도록 하자 코틀린의 인터페이스는 자바의 인터페이스와는 차이가 있다. 코틀린의 인터페이스에서는 프로퍼티 선언이 가능하지만 자바는 불가능하다. 자바에는 implements를 통해 인터페이스를 구현하지만 코틀린은 콜론(:)을 사용한다. 코틀린의 인터페이스 안에는 추상 메서드뿐 아니라 구현이 있는 메서드도 정의할 수 있다. (이는 자바 8의 디폴트 메서드와 비슷하다고 한다) 그럼 지금부터 코틀린 인터페이스의 예시들을 보며 알아가보도록 하자. 자바 코드는 이해를 돕기 위해 참고용으로 매 코드마다 넣어놨다. override 키워드와 인터페이스 우선 간단하게 인터페이스를 선언해보자 interface Soccer { fun kick() } 자바 코드 // java도 큰 차이는 없다 publi..