개발일지

Kotlin in A..Z (20) - 추상 클래스 본문

Kotlin (코틀린)

Kotlin in A..Z (20) - 추상 클래스

강태종 2020. 7. 17. 10:54

- 추상 클래스 (abstract)

  • 추상 클래스는 객체를 인스턴스화 할 수 없다.
  • 추상 클래스는 하위 클래스를 어떻게 구현해야 하는지 나타내는 용도로 쓰인다.
  • open 키워드를 사용할 필요 없이 상속시킬 수 있음

코드

abstract class Parent {
    val normal: Int = 0

    // 추상 프로퍼티, 하위 클래스에서 반드시 재정의를 해야함
    abstract val abstractVal: Int

    fun normalFunction() {
        println("Normal Function")
    }

    // 추상 메소드, 하위 클래스에서 반드시 재정의를 해야함
    abstract fun abstractFunction()
}

class Child : Parent() {
    // override 키워드를 사용해서 재정의한다.
    override val abstractVal: Int = 0

    override fun abstractFunction() {
        println("Func")
    }
}

- object 표현식을 사용한 추상 클래스 객체 인스턴스

 

코드

abstract class Test {
    abstract fun action()
}

fun main() {
    val abstractInstance = object : Test() {
        override fun action() {
            println("Test")
        }
    }

    abstractInstance.action()
}

 

결과

Test
Comments