super 멤버를 보고합니다.
파생 클래스의 코드는 super 키워드를 사용하는 상위 클래스 함수 및 프로퍼티 접근자 구현을 호출할 수 있습니다.
상속받은 구현이 유래한 상위 타입을 지정하려면 예를 들어 super<Base> 같은 대괄호 내 상위 타입 이름으로 super를 정규화할 수 있습니다. 이 정규화는 종종 불필요하며 생략할 수 있습니다.
코드를 정리하려면 '명시적 상위 타입 정규화 제거' 빠른 수정을 사용하세요.
예:
open class B {
open fun foo(){}
}
class A : B() {
override fun foo() {
super<B>.foo() // <== 'B'가 유일한 상위 타입이므로 불필요
}
}
interface I {
fun foo() {}
}
class C : B(), I {
override fun foo() {
super<B>.foo() // <== 여기에서 'B.foo()'와 'I.foo()'를 구분하기 위해 <B> 한정자가 필요합니다
}
}
빠른 수정을 적용한 후:
open class B {
open fun foo(){}
}
class A : B() {
override fun foo() {
super.foo() // <== 업데이트됨
}
}
interface I {
fun foo() {}
}
class C : B(), I {
override fun foo() {
super<B>.foo()
}
}