super メンバーの呼び出しを報告します。
派生クラス内のコードで super キーワードを使用すると、そのスーパークラスの関数とプロパティアクセサーの実装を呼び出すことができます。
実装の継承元であるスーパータイプを指定するため、スーパータイプの名前を山括弧で囲み、super を修飾することができます (例: super<Base>)。 この修飾が冗長であり、省略できる場合があります。
コードをクリーンアップするには、'明示的なスーパータイプ修飾子の除去' クイックフィックスを使用します。
例:
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() // <== here <B> 'B.foo()' を 'I.foo()' と区別するには修飾子が必要です
}
}
クイックフィックス適用後:
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()
}
}