是否可以访问displayMsg()函数中的getVal()函数? 我试图用函数getVal()创建一个匿名内部类,我想在AnonymousClass的displayMsg()函数中调用getVal()函数。
import java.io.*;
class AnonymousClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
displayMsg(new AnonymouseEx(10){
public int getVal(){
return getValue();
}
});
}
static void displayMsg(AnonymouseEx obj)
{
}
}
class AnonymouseEx{
private int i=0;
AnonymouseEx(int val)
{
i = val;
}
int getValue()
{
return i;
}
}
答案 0 :(得分:0)
不,这是不可能的。
displayMsg
要求类AnonymouseEx
的类没有名为getVal
的方法。因为您只将此函数添加到匿名子类,所以其他子类可能没有此函数,因此displayMsg
无法使用它。
如果要提供匿名类中使用的自定义实现,则必须覆盖AnonymouseEx
中的函数,或者为其提供子类必须实现的抽象方法。使用抽象方法(或接口)是最常见的,例如在Java使用的Listener
接口中。