티스토리 뷰

Server

Kotlin의 상속성과 다형성

니용 2020. 7. 3. 18:15
반응형

Author: 니용

 


Java에는 extendsimplements 등으로 상속을 받고 있습니다.

Kotlin은 그보다 더 쉽게 상속이 가능합니다.

먼저 상속할 클래스 앞에 open 키워드를 붙입니다.

open class Person {
    var name: String? = null
    val gender: String? = null
    val age: Int? = null
}

class PersonInfo : Person()

상속의 방식은 콜론(:)을 기준으로 가능합니다.

 

 

주의: data class는 open 키워드를 붙일 수 없습니다.

 

추상 클래스와 인터페이스

// 추상클래스
abstract class A {
   // Java와 마찬가지로 적어도 한 개 이상의 추상메소드가 있어야 해요 
   abstract fun makeA()
}

// 인터페이스
interface B {
    fun makeB()
}

open class C {
    var cccc: String = ""
}

class Extended : A(), B {
    override fun makeA() {
        // ...
    }

    override fun makeB() {
        // ...
    }
}

class ExtendC : C() {
    var getterC : String = cccc
}

상속의 연결은 콤마(,)로 가능합니다.

 

Super Class

abstract class Person(name: String) {
   var gender: String? = null
   var age: Int = 0
   
   abstract fun getAgeTh(): String
} 

class PersonInfo : Person("Niyo") {
   constructor(name: String) : super(name)
   override fun getAgeTh() {
      var ageTh = (10 * (age-1))
      return if(age>0) "${ageTh}대" else ""
   }
}

 

반응형

'Server' 카테고리의 다른 글

[Java] 직렬화는 중요한 것일까  (0) 2020.07.17
[Spring] RestTemplate 알아보기  (0) 2020.07.14
[Spring] Spring Framework 5와 WebFlux  (0) 2020.07.06
[Java] Files를 사용하여 입력하기  (0) 2020.07.02
Kotlin의 Pair와 Triple  (0) 2020.07.02
Kotlin의 Type과 Nullable (3)  (0) 2020.07.01
댓글
공지사항