그래서 하나의 부모 클래스를 A라고하고 A라는 내부 클래스를 I라고합니다. 즉 클래스 A 인 pop()이라는 한 함수를 호출하고 있습니다. 이제이 pop()은 A의 자식 인 B에 의해 무시됩니다.JAVA의 부모 클래스의 내부 클래스에서 자식 클래스의 재정의 된 메서드를 호출하려면 어떻게해야합니까?
이제 pop이 I에서 호출 될 때 A가 실행되거나 B가 실행됩니다.
package testers;
public class test
{
public void run()
{
System.out.println("Inside test");
}
public void irun()
{
InnerClassOne o=new InnerClassOne();
o.inside();
System.out.println("Inside irun");
}
private void inside()
{
// TODO Auto-generated method stub
}
class InnerClassOne
{
void inside()
{
System.out.println("Inside inner");
test.this.run();
}
}
}
package testers;
public class test2 extends test
{
public void run()
{
System.out.println("Overriden");
}
public static void main(String []args)
{
test t1= new test();
t1.irun();
}
}
코드를 표시하십시오 (pop 메소드를 호출하는 인스턴스에 따라 다르며 pop이 정적이 아닌 것으로 가정). 포럼에서 요청하기 전에 시도해 볼 가치가 있습니다. – SMA
패키지 테스터; 공용 클래스 테스트 { \t \t 공공 무효 실행() { \t \t에서 System.out.println ("테스트 인사이드"); \t} \t \t 공개 무효 이룬() { \t \t InnerClassOne 오 = 새로운 InnerClassOne(); \t \t o.inside(); \t \t System.out.println ("내부 irun"); \t} \t 개인 공극 내부() { \t \t는 // TODO 자동 생성 방법은() \t \t {System.out에 \t { \t \t 공극 내부 \t \t \t} \t 클래스 InnerClassOne 스터브. println ("내부 내부"); \t \t \t \t test.this.run(); \t \t} \t} } –
패키지 테스터; \t 공용 클래스 TEST2 테스트 {공공 무효 실행() { \t System.out을 확장합니다.println ("오버라이드"); } \t 공공 정적 무효 메인 (문자열 []에 args) { \t 테스트 T1 = 새로운 테스트(); t1.irun(); \t \t \t} } –