티스토리 뷰

728x90
  • 코틀린의 모든 class는 공통 상위 클래스인 Any를 상속받는다. (타입 시스템 참고)
  • 클래스 내부가 비어있다면 중괄호를 생략해도 무방하다.
class Example

 

  • 자바와 달리 코틀린에서는 클래스와 메서드가 기본적으로 final로 선언된다.
  •  상속 및 오버라이딩을 하기 위해서는 open키워드를 사용해야 한다.
  • 상속 시 자바에서는 extends를 사용하지만 코틀린에서는 :(콜론)을 사용하여 상속한다.
open class Parent() {
    
}

// extends Parent
class Child() : Parent() {
    
}

 

  • 부모의 생성자는 반드시 초기화해야 한다.
  • 클래스가 주요 생성자를 가진다면 주요 생성자의 파라미터로 부모를 초기화시킬 수 있다.
open class Parent(val age: Int) {

}


class Child(val name: String, age: Int) : Parent(age) {

}

fun main() {
    val c = Child("park jin", 31)
    println("name :: ${c.name}, age :: ${c.age}") // name :: park jin, age :: 31
}

 

  • 주요 생성자를 갖기 않는다면 보조 생성자에서 super를 이용하여 초기화 하거나 다른 생성자에게 위임해야 한다.
open class Parent(val age: Int) {

}


class Child : Parent {
    val name: String;

    // super로 부모 생성자 초기화
    constructor(name: String, age: Int): super(age) {
        this.name=  name
    }

    // 다른 생성자에 위임
    constructor(name: String): this(name, 31) {

    }

}

fun main() {
    val c1 = Child("park jin1", 21)
    println("name :: ${c1.name}, age :: ${c1.age}") // name :: park jin1, age :: 21

    val c2 = Child("park jin2")
    println("name :: ${c2.name}, age :: ${c2.age}") // name :: park jin2, age :: 31
}

 


출처

https://kychul98.tistory.com/85

 

[코틀린] 5. 클래스 작성, 상속, 인터페이스

이번에 포스팅할 건 클래스에 대해서다 원래 깃허브 블로그에 썼던건데 깃허브 블로그 운영하기 귀찮아서 티스토리에 옮길려고 한다. 이 포스팅에선 코틀린에만 존재하는 data class, 한정 클래스는 설명하지 않을..

kychul98.tistory.com

https://hadeslee.tistory.com/26

 

코틀린 - 클래스와 상속

클래스와 상속 클래스 코틀린의 클래스는 class 키워드를 사용하여 선언됩니다 . class Invoice { } 클래스 선언은 클래스 이름, 클래스 헤더 (유형 매개 변수, 기본 생성자 등 지정) 및 중괄호로 묶인 클래스 본..

hadeslee.tistory.com

https://altongmon.tistory.com/585

 

코틀린(kotlin) : 클래스와 상속 class and inheritance

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 코틀린의 클래스와 상속에 대..

altongmon.tistory.com

https://brunch.co.kr/@mystoryg/12

 

코틀린(Kotlin) 클래스 상속

빠르게 살펴보기 | 상속 (Inheritance) 코틀린에서는 super class (이하 부모클래스) 선언하지 않은 클래스는 default super로 Any라는 부모클래스를 가집니다. class Computer // 암시적으로 Any를 상속 받음 표준 라이브러리에도 잘 설명되어 있습니다. Any (출처) open class Any The root of the Ko

brunch.co.kr

 

728x90
댓글