Skip to content

4. 클래스,객체,인터페이스 #25

@youngvly

Description

@youngvly

클래스와 인터페이스

계층정의

  • 상위 클래스에 있는 메소드와 시그니처가 같은 메소드를 우연히 하위 클래스에서 선언하는 경우, 컴파일이 되지않기때문에 override 변경자를 붙이거나, 이름을 변경해야한다.
  • 두 인터페이스 구현시 default가 있는 동일한 메서드가있다면, 하위클래스에서 명시적으로 새로운 구현을 제공해야한다.
class Button : Clickable, Focusable {
   override fun showOff() {
      super<Clickable>.showOff()
      super<Focuable>.showOff()
   }
}
  • Java에서 Kotlin interface default method 에 의존할 수 없다.
  • 상속금지 : 상속을 위한 설계와 문서를 갖추거나, 그럴 수 없다면 금지하라.
    • java에서는 메서드, 클래스 모두 final로 만들라.
    • kotlin에서는 기본적으로 final이므로, 상속을 허용해주려면 클래스,메서드에 open 변경자를 붙여야한다.
      • 이미 override한 메서드는 기본적으로 열려있다.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions