몇 개의 클래스/인터페이스가 주어진다. 주어진 메소드에 대해 구현 클래스를 얻으려면 어떻게해야합니까?
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 결정할 수도 구현 C (또는 C 중 어느 서브 클래스)를 사용하여 코드 (프로그램 방식)이 B는 INT 해봐요 (int)를 구현하는 클래스가 얼마나.
또는 B의 하위 클래스 중 하나라도 C를 확장하는 D가 "int doSomething (int)"을 재정의하면 E를 사용하여 작업 할 때 (D를 확장하는 경우 ... 이것은 하나의 큰 클래스 패밀리입니다) 나는 "int doSomething (int)"을 구현 한 첫 번째 부모를 정의합니까?
사전에 여러분 모두 감사합니다 :)
B가 A를 구현해서는 안됩니까? – stacker
왜 이것을 알아야합니까? 당신은 보통 이것을 신경 쓰지 않아야합니다. yoy가 A의 인스턴스를 가지고 있다면, do something 뭔가가 호출 될 수 있습니다. 그것이 다형성의 핵심입니다. 어쨌든,이게 당신이 찾고있는 것 같아요. http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html#getDeclaringClass%28%29 –
뭔가 의미가 있습니다. 'System.out.println (getClass(). getName());과 같이 메소드 내부에서? – Viruzzo