본문 바로가기
안드로이드/코틀린

두서 없이 정리하는 어노테이션

by 나이아카 2022. 2. 15.

 안드로이드 개발자로서 개발을 진행하거나 공부를 이어 가다보면, 알지 못하는 새로운 어노테이션을 많이 발견하게 됩니다. 그럴때마다 그 주제에 대한 정리를 하자니 필요할 때 필요한 키워드가 기억이 안나는 경우가 있더군요. 그래서 궁금한 어노테이션을 발견할 때 마다 여기에 하나씩 적어둘까 합니다.


@CallSuper 어노테이션

 위의 어노테이션을 사용하는 메소드를 상속할 때에는 무조건 super 키워드를 사용해야 한다는 어노테이션입니다. 사용 이유는 이 메소드를 상속하는 다른 클래스에서 이 메소드를 오버라이딩할 때 꼭 이 메소드에 선언되어 있는 로직을 실행시킨 이후에 실행시키기를 원할 때 사용합니다.

open class Animal {
    @CallSuper // @CallSuper annotation 
    open fun makeSound() { 
        println("making sound...") 
    } 
} 

class Dog : Animal() {
    override fun makeSound() { 
    // compilation error
    println("bark!")
    }
}

class Cat : Animal() {
    override fun makeSound() { 
    // compilation error 
    println("meow~")
    }
}

출처: https://holika.tistory.com/72 [Uing? Uing!!]

 

 출처에 적힌 블로그의 예제를 가져왔는데 여기 설명이 제일 간단하게 되어 있는 것 같아서 첨부했습니다.


 지금은 하나뿐이라 조금 민망하지만 시간이 지나면 지날수록 더 늘어나겠죠 뭐...

댓글