いくつかのクラス/インタフェースが指定されています。メソッドの実装クラスを取得するにはどうすればよいですか?
コードで実装C(またはCの任意のサブクラス)を使用してどのようにpublic interface A {
public int doSomthing(int x);
}
public class B implements A {
int doSomthing(int x){
//actually do something
};
}
public class C extends B {
//does some specific implementations of what B does
// but does NOT override "int doSomething(int)"
}
I BがINTのdoSomething(int)を実装するクラスであったこと(プログラム的に)決定することができます。
Bのサブクラス(Cを拡張するDと言うことができます)が "int doSomething(int)"をオーバーライドした場合、Eを使って作業するとき(Dを拡張する、これはクラスの大きなファミリーです)私は "int doSomething(int)"を実装した最初の親を定義しますか?
は、事前にすべてのいただきありがとうございます:)
BはAを実装すべきですか? – stacker
なぜこれを知る必要がありますか?あなたは通常このことに気を付けるべきではありません。 yoyがAのインスタンスを持つ場合、doSomethingが呼び出されることがあります。それが多形性の全体のポイントです。とにかく、これはあなたが探しているものだと思う:http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html#getDeclaringClass%28%29 –
あなたは何かを意味する'System.out.println(getClass()。getName());'メソッド内部で? – Viruzzo