(インタビュー質問) 明示的なメソッドではなく暗黙のメソッドを呼び出すことができるクラスで実装されたインターフェイスの例を教えてください。インタフェース暗黙メソッドを呼び出すことはできますが、明示メソッドを呼び出すことはできませんか? (インタビュークエスト!on)
0
A
答えて
0
例:
アセンブリ1:
internal interface IFlyable
{
void Fly();
}
public class Bird: IFlyable
{
public void Fly() { ... }
void IFlyable.Fly() { ... }
}
アセンブリ2:
Bird bird = new Bird();
bird.Fly();
((IFlyable)bird).Fly() // Error, IFlyable is internal
それは面接の質問でした。あなたがそれについて考えるなら、スマートなもの。
2
interface IA
{
void Method1();
void Method2();
void Method3();
}
class A : IA
{
// Implicit implementation
public void Method1()
{
}
// Explicit implementation
void IA.Method2()
{
}
// Implicit + explicit implementation!
public void Method3()
{
}
void IA.Method3()
{
}
}
class TestImplicitExplicit
{
public void Test()
{
A a = new A();
a.Method1(); // ok
//a.Method2(); // does not compile
a.Method3(); // ok
IA ia = a;
ia.Method1(); // ok
ia.Method2(); // ok
ia.Method3(); // ok (calls another method than a.Method3(); !)
}
}
明示的な実装は、インターフェイスを介してのみ表示されます。
関連する問題
- 1. nvarcharのメソッドを呼び出すことができません
- 2. Pythonのメソッドを呼び出すことができません
- 3. メソッド 'wsl_wordpress_social_login'を呼び出すことができません
- 4. rootViewControllerでメソッドを呼び出すことはできますか?
- 5. TypeError例外:メソッドを呼び出すことはできませんがcompareResults
- 6. ケースステートメントでメソッドを呼び出すことができますruby
- 7. 代理メソッドをプログラムで呼び出すことはできませんか?
- 8. AVAssetWriterはstartWritingメソッドを呼び出すことができません
- 9. クラスからメインアクティビティのメソッドを呼び出すことができません
- 10. メソッドは、AJAXからのみ呼び出すことはできません
- 11. @InjectMocks属性は、Mockitoのメソッドを呼び出すことはできません。
- 12. Google App Script getRange()メソッドをnullで呼び出すことはできません
- 13. ASPページからJavaメソッドを呼び出すことができません:
- 14. UIView拡張からメソッドを呼び出すことができません
- 15. メソッドを遠隔から呼び出すことができません
- 16. ViewHolder(RecyclerView)からアダプタのメソッドを呼び出すことができません
- 17. 文字列変数のメソッドを呼び出すことができません
- 18. AppCompatActivityでgetLifecycle()メソッドを呼び出すことができません
- 19. javaリフレクションでメソッドを呼び出すことができません:NoSuchMethodException
- 20. コントローラでLogOffメソッドを呼び出すことができません
- 21. テストメソッドで私のメソッドを呼び出すことができません
- 22. 404 ASPでJavaScriptのHttpメソッドを呼び出すことができません
- 23. TypeError:nullのメソッド "getRange"を呼び出すことはできません。 (行0)
- 24. TypeError:未定義のメソッド "push"を呼び出すことができません
- 25. メソッドを呼び出すシンボルを見つけることができません
- 26. nullのメソッド 'append'を呼び出すことができません
- 27. Javascript - ヌルのメソッド 'split'を呼び出すことができません
- 28. カスタムクラスオブジェクトのメソッドを呼び出すことができません。Excel VBA
- 29. Uncaught TypeError:ヌルのメソッド 'onClose'を呼び出すことができません。
- 30. 子コンポーネントの親メソッドを呼び出すことができませんreactjs
明示的にオーバーライドするインターフェイスメソッドを呼び出せないクラスを指していますか? – rerun
インターフェイスを実装したクラスの暗黙的および明示的メソッドとはどういう意味ですか?公的、私的のようなアクセス修飾子を意味しますか? – Mharlin
@rerun正しい。 – Idrees