Kotlin의 class에 대하여 알아보기 2

오늘은 코틀린에서의 class 상속과 인터페이스에 대하여 알아보려 합니다.

class 상속

타 언어와 같이 상위 클래스에서 정보를 상속 받을 수 있습니다.

open 키워드를 사용하여 상속해줄 수 있는 속성과 함수를 정할 수 있습니다.

open class test(){
    open var name : String = "test"
    var a : Int = 1
    var b : Int = 2
    open fun sum():Int{
        return a + b
    }
}

class test2() : test(){
    override var name : String = "test2"
}

fun main(args: Array<String>) {
    var real = test2()
    var result = real.sum();
    println(result)
    println(real.name)
}

상속받은 클래스로 객체를 생성하면 상위 클래스에 있는 내용이 상속되어 중복 작성을 피하게 됩니다.

인터페이스

위의 기존 코드에 인터페이스를 추가해보겠습니다.

interface Itest{
}

인터페이스는 위와 같은 구조로 이루어져 있습니다.

open class test():Itest{
    override fun TestInterface(){
        println("interface")
    }
}

인터페이스를 상속받아서 오버라이드를 해주면 됩니다.

interface Itest{
    fun TestInterface()
}

open class test():Itest{
    open var name : String = "test"
    var a : Int = 1
    var b : Int = 2
    open fun sum():Int{
        return a + b
    }
    override fun TestInterface(){
        println("interface")
    }
}

class test2() : test(){
    override var name : String = "test2"
}

fun main(args: Array<String>) {
    var real = test2()
    var result = real.sum();
    println(result)
    println(real.name)
}

위 예시 코드에 인터페이스를 붙여 작성한 코드입니다.

상위 클래스에 인터페이스를 상속받아서 오버라이드한 모습입니다.

Written on May 8, 2018