public class Test {
public static void main(String[] args){
aaa a=new aaa("传递的参数"){
public void told(){
System.out.println("told方法调用");
}
public void say(){
System.out.println("say方法调用");
}
};
a.say();
a.told(); //这里提示说没有找到told方法
}
}
class aaa{
aaa(String b){
a=b;
}
String a="";
public void say(){
System.out.println("a");
}
}
来个大神帮下,小弟初学,为嘛在这个匿名内部类中定义的方法told,我调用的时候他提示没有找到这个方法啊?
匿名内部类
------解决方案--------------------
楼主定内部类定义错了!
首先你声明了一个 aaa类,如下
class aaa {
aaa(String b) {
a = b;
}
String a = "";
public void say() {
System.out.println("a");
}
然后你在main方法中又
aaa a = new aaa("传递的参数") {
public void told() {
System.out.println("told方法调用");
}
public void say() {
System.out.println("say方法调用");
}
};
这样
这相当于你定义 aaa类的子类,并把它赋值给aaa的引用,而aaa中是没有told方法的,如果你在aaa中定义了told方法,那么就不会报错了!
------解决方案--------------------
new aaa("传递的参数"){
public void told(){
System.out.println("told方法调用");
}
public void say(){
System.out.println("say方法调用");
}
}.told();