protectedのメソッドを呼び出す時に分からなくなりました。
継承元の型をもつフィールドからprotectedのメソッドを呼び出そうとするとコンパイルエラーになります。
javaで同じようなことをすると問題なくビルド出来たんですが、kotlinではこういう呼び出し方は出来ないんでしょうか?
何かkotlinなりの呼び出し方があるんでしょうか。
kotlin
1open class superclass{ 2 open protected fun protectedFunc(){} 3} 4class subclass():superclass(){ 5 val m_super = superclass() 6 fun subFunc(){ 7 8//コンパイルエラー 9//Cannot access 'protectedFunc': it is protected in 'superclass' 10 m_super.protectedFunc() 11 12 } 13 override fun protectedFunc() { 14 super.protectedFunc() 15 } 16}
intellijIDEAですと、コード補完機能で
kotlin
1fun subFunc(){ 2 with(m_super) { protectedFunc() } 3 }
こんなふうに訂正されてコンパイルエラーは無くなったんですが、こういう機能を使うべきなんでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/30 07:17