大神 ,请问一下这个几个supper所代表的的是哪个对象
public class A extends D
{
protected class B implements K
{
public C c= new C()
{
public void med1()
{
supper
//code
}
}
public void med2()
{
supper
//code
}
}
public void med3()
{
supper
//code
}
}
是super吧...
public C c= new C()
{
public void med1()
{
super //这个super指的就是C这个类,这时的new C(){...}实际上生成了一个继承自C的匿名类,所以super指的是C
//code
}
}
med2()中的super指的应该是Object,因为B类没显示继承任何类,所以super指向隐式继承的Object类
med3()中的super指向的是D,因为A类显示继承自D
虽然不太清楚,但是可以用编译器debugger,看一下super生成的对象是不是一样,就知道了。debugger下,好像每个生成的对象都会在类名后跟一个数字,看看这几个数字和对象是不是相同,即可判断super是那个了。
用编译器debugger看看super的值,即可