匿名类中的java限制
我们可以在匿名类中定义一个方法,而不是在超类中定义一个方法吗?如果是,如何可能以及我们如何访问它 比如说
abstract class a
{
public void method()
{
}
}
class b
{
public static void main(String arr[])
{
a x=new a()
{
public void y()
{
}
};
}
}
我们如何访问y()
方法
# 1 楼答案
对。事实上,你只是在你的例子中做到了
不幸的是,由于明显的原因,您无法在
x
引用上访问该方法。编译器找不到y()
方法声明类A
。直接在匿名类实例创建表达式上访问该方法的唯一方法如下:但这几乎没有任何用处
或者您可以从类
A
的另一个方法调用它,您可以在匿名内部类中重写它# 2 楼答案
您可以定义此类型的方法,但只能从同一抽象类中的其他方法访问它: