티스토리 뷰
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
https://hadeslee.tistory.com/26
https://altongmon.tistory.com/585
https://brunch.co.kr/@mystoryg/12
728x90
'개발 언어 > 코틀린' 카테고리의 다른 글
코틀린(Kotlin) | 클래스 - 추상 클래스, 인터페이스 (0) | 2019.06.21 |
---|---|
코틀린(Kotlin) | 클래스 - 멤버 오버라이드 (Override) (0) | 2019.06.21 |
코틀린(Kotlin) | 클래스 - 객체 생성 및 생성자 (0) | 2019.06.21 |
코틀린(Kotlin) | 클래스 - 객체지향 (0) | 2019.06.21 |
코틀린(Kotlin) | 타입 시스템 (0) | 2019.06.21 |
댓글