interface A
{
public void fun1();
}
class B
{
int i=10;
class C implements A
{
public void fun1()
{
System.out.println(i);
}
}
public void get(A a)
{
a.fun1();
}
public void test()
{
this.get(new C());
}
}
class TestNonameInner
{
public static void main(String [] args)
{
B b=new B();
b.test();
}
}
```我想问下这段代码运行时情况,怎么一步一步运行输出结果的?讲解详细一些。谢谢!
前一段时间在CSDN论坛回答的一个问题,觉得蛮有意思的,决定拿出来在这里记录一下。 问题的提出: 该例子程序涉及到了三个class文件,分别是Contents.java,Destination.java,Parcel10.java。其中的Contents.java和Destination.java是两个interface,而Parcel10.java是含有静态内部类的一个类文件。 ......
答案就在这里:Java的内部类问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
A是一个借口,C实现了fun1方法。
B b=new B();
b.test();//调用b的test方法
this.get(new C());//在test中调用get方法,创建一个C对象
public void get(A a)
{
a.fun1();//在这里由于多态,会调用C的fun1方法
}
System.out.println(i); //最终执行这个,输出10