this. super. @

Anna·2024년 6월 11일
0

코틀린

목록 보기
20/28
post-thumbnail

this. super.

상위 클래스는 super 키워드로 현재 클래스는 this 키워드로 참조가능

super상위 클래스this현재 클래스
super.프로퍼티명상위 클래스의 프로퍼티 참조this.프로퍼티명현재 클래스의 프로퍼티 참조
super.메서드명상위 클래스의 메서드 참조this.메서드명현재 클래스의 메서드 참조
super()상위 클래스의 생성자 참조this()현재 클래스의 생성자 참조

엣(@) 기호의 이용

이너 클래스에서 바깥 클래스의 상위 클래스를 호출하려면 super 키워드와 함께 엣(@) 기호 옆에 바깥 클래스명을 작성해 호출

class Outer 
{
    fun greetings() 
    {
        println("Hello from Outer class")
    }

    inner class Inner 
    {
        fun greetings() 
        {
            println("Hello from Inner class")
            
            // 외부 클래스의 greetings() 메서드 호출
            this@Outer.greetings() 
        }
    }
}

fun main() 
{
    val outer = Outer()
    val inner = outer.Inner()
    inner.greetings()
}

위의 코드에서 this@Outer.greetings()는 이너 클래스의 greetings() 메서드가 아니라 외부 클래스인 Outer 클래스의 greetings() 메서드를 호출한다.

0개의 댓글