본문 바로가기
책을 읽어봅시다/Kotlin in Action

JAVA와 차이점 그리고 클래스, 객체, 인터페이스

by upswp 2022. 3. 2.
안녕하세요 Samuel 입니다.

Java와의 차이점

  • 코틀린 인터페이스에 프로퍼티 선언이 들어갈 수 있습니다.
  • 자바와 달리 코틀린 선언은 기본적으로 final이며 public입니다.
  • 중첩 클래스는 기본적으로 내부 클래스가 아닙니다. 코틀린 중첩 클래스에는 외부 클래스에 대한 참조가 없습니다.
  • 짧은 주 생성자 구문으로도 거의 모든 경우를 잘 처리할 수 있습니다.
  • 번잡스러움을 피하기 위해 유용한 메서드를 자동으로 만들어 줍니다.
  • 클래스를 data로 선언하면 컴파일러가 일부 표준 메서드를 생성해 줍니다.
  • 코틀린 언어가 제공하는 위임(delegation)을 사용하면 위임을 처리하기 위한 준비 메서드를 직접 작성할 필요가 없습니다.

코틀린 인터페이스

interface Clickable{
		fun click()
}
class Button : Clickable {
		override fun click() = println("I was clicked")
}

>>> Button().click()
I was clicked

위에서 click() 이라는 추상메서드가 있는 인터페이스를 정의했습니다. 이 인터페이스를 구현하는 모든 비추상 클래스(또는 구체적 클래스)는 click에 대한 구현을 제공해야합니다. Java와의 차이점

  • 자바에서는 extends와 implements 키워드를 사용하지만, 코틀린에서는 클래스 이름 뒤에 콜론( : )을 붙입니다.
  • 인터페이스와 클래스 이름을 적는 것으로 클래스 확장과 인터페이스 구현을 모두 처리합니다.
  • 클래스는 인터페이스를 원하는 만큼 갯수 제한 없이 마음대로 구현할 수 있습니다.
  • 클래스는 오직 하나만 확장할 수 있습니다.
  • override 변경자는 반드시 사용해야합니다. 실수로 상위 클래스의 메서드를 오버라이드 하는 경우를 방지해줍니다.
  • 상위클래스에 있는 메서드와 시그니처가 같은 메서드를 우연히 하위 클래스에서 선언하는 경우, 컴파일이 안되기 때문에 override를 붙이거나 메서드 이름을 바꿔야 합니다.

'책을 읽어봅시다 > Kotlin in Action' 카테고리의 다른 글

람다로 프로그래밍(1)  (0) 2022.03.03
Basic Kotlin  (0) 2022.02.21
Why Kotlin  (0) 2022.02.19