본문 바로가기

Kotlin(코틀린)

Kotlin(코틀린) > 주생성자와 보조생성자 - 오버라이딩 예제(문제 풀이)

코틀린의 주생성자와 보조생성자 관련하여 문제 풀이를 해보려 한다.

간단한 예제 코드이니 부담없이 봐도 될 것이다!

 

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")
   }
}

 

이렇게 간단한 예제 문제를 풀며 코틀린의 기본 문법을 호기심있게 학습하는 거 같다.

앞으로 이런 간단한 예제 문제들을 풀어보며 즐겁게 코딩 공부를 하고 싶다