코틀린의 주생성자와 보조생성자 관련하여 문제 풀이를 해보려 한다.
간단한 예제 코드이니 부담없이 봐도 될 것이다!
class Test1()
{
var test = 1
init {
println("init")
}
constructor(name:String):this() {
println("secondary: $name")
}
}
class Test2: Test1() {
val test = 1
init {
println("Test2 init")
}
}
위의 코드는 컴파일 오류가 있는 코드이다. 하나하나 살펴보면서 어디서 문제가 생길지 생각해보자
첫 번째 오류!
상속을 받는 클래스나 오버라이딩을 할 변수가 있으면 open 키워드를 추가해서 선언해야 한다.
(오버라이딩 시 override 키워드를 붙여준다.)
두 번째 오류!
오버라이딩 하는 변수의 변수 꼴은 같아야 한다.(불변/가변)
위 두 가지 오류를 참고하여 수정하면 다음과 같은 결과가 된다.
open class Test1() // open 키워드 삽입
{
open var test = 1 // open 키워드 삽입
init {
println("init")
}
constructor(name:String):this() {
println("secondary: $name")
}
}
class Test2: Test1() {
override var test = 1 // override 키워드 삽입 + 변수 꼴 부모와 통일
init {
println("Test2 init")
}
}
이렇게 간단한 예제 문제를 풀며 코틀린의 기본 문법을 호기심있게 학습하는 거 같다.
앞으로 이런 간단한 예제 문제들을 풀어보며 즐겁게 코딩 공부를 하고 싶다
'Kotlin(코틀린)' 카테고리의 다른 글
Kotlin(코틀린) > 사칙연산을 수행하는 계산기를 만들어 보자! - 2 (7) | 2024.04.12 |
---|---|
Kotlin(코틀린) > 사칙연산을 수행하는 계산기를 만들어 보자! - 1 (5) | 2024.04.09 |
Kotlin(코틀린) > 주생성자와 보조생성자 (7) | 2024.04.02 |