"A"메서드를 재정의하고 추가 기능을 추가하는 클래스 "A"및 로컬 클래스 "B"가있는 외부 API가 있습니다 (수정할 수 없음). 일부 매개 변수 "is_A"에 따라 그 중 하나를 사용해야합니다.외부 API 기능을 확장하는 Java 클래스
/------ API (A.java) -----/
package A;
public class A {
public int pingA(int value) {
return value;
}
}
/------ 내 수업 (B.java) --- -/
package B;
import A.*;
public class B extends A {
@Override
public int pingA(int value) {
return value;
}
public int pingB(int value) {
return value;
}
public static void main(String[] args) {
final boolean is_A = false;
A obj;
if (is_A) {
obj = new A();
} else {
obj = new B();
}
if (!is_A) {
int n = obj.pingB(3);
}
}
}
I 클래스 "B"를 사용하고 싶은 경우에는이
하지만 명령 "INT obj.pingB N = (3);" 어떤 방법 pingB는 A. 정확한 메시지가 없기 때문에 컴파일되지 않는 것은 :
cannot find symbol
symbol: method pingB(int)
location: class A.A
감사 많은이 작동합니다. 이 접근 방식 (즉, 캐스팅)은 처리 속도에 영향을 줍니까? – Serg
아니요, 물론 아닙니다. – BalusC