请教关于java内部类的问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 05:30:28
public class Parcel8{
public Wrapping wrapping(int x){
return new Wrapping(x){
public int value(){
return super.value()*47;
}
};
}
public static void main(String[] args){
Parcel8 p =new Parcel8();
Wrapping w = p.wrapping(10);
}
}
这个是按照java编程思想上打出来的一个例子,但是运行不通过,提示不存在Wrapping找不到符号。请问各位有没有对java内部类比较熟悉的,能跟我详细解释一下java的匿名内部类。
非常感谢2楼的回答,我确实对抽象类和接口这方面不熟,你的答案给了我很好的指导,真的非常感谢。但是我发现你的答案也有点错误,那就是抽象类的value()方法不应该是抽象方法,不然的话super.value()是不能够被调用了。改了一下程序,现在能够运行了
abstract class Wrapping{
private int value;
Wrapping(int x){
value=x;
}
public int value(){
return value;
}

}
public class Parcel8{
public Wrapping wrapping(int x){
return new Wrapping(x){
public int value(){
return super.val

恕我直言哈!你没有搞清楚抽象类与接口,我给你分析一下吧
public Wrapping wrapping(int x)方法,是要返回一个Wrapping 类,但是你却没有Wrapping类,Wrapping 外部内部都没有关系,当然也可以写到内部,
很明显Wrapping 是一个抽象类,他有一个有参的构造函数Wrapping(int x);并且有一个抽象方法public abstract int value()你要实例化他就必须重写它的抽象方法!

在这里的Wrapping应该是一个接口。你应该把这个接口import就可以了。