私はいくつかの質問を探していて、この問題に私を導きます。あなたがオブジェクトインスタンス上の静的メソッドを呼び出すと、それは、例えば、動的または静的に解決しない:静的メソッドは抽象することはできませんなぜそれが説明するだろうので、私はこれを聞いてるのよ、なぜオブジェクトインスタンスとサイドノートで静的メソッドを呼び出すJava
class A
{
public static foo() {}
}
class B extends A
{
public static foo() {}
}
[...]
public static void main(String[] args)
{
A a = new B();
a.foo(); // does this all A foo or B foo?
}
です。 Aがインタフェースの場合、fooが抽象的かつ静的であれば、これは動作しません。
これは内部的にどのように機能しますか?基本的には、fooが動的ではない場合、fooは静的であることをどのように知っていますか?まだクラスを調べる必要はありませんか?また、それは本当にBであることを知っている場合、それはBにfooを呼び出すのはなぜですか?
あなたのスピードにマッチすることができます誰かのように見えます:) – aviad
私はそれが、非常に良い答えを許可しない理由だと思います:-) – rubixibuc