解决方案 »

  1.   

    你的a 这个对象是aaa的实例,里面根本就没有told这个方法啊,   told是Test这个类里面的方法
      

  2.   

    楼主定内部类定义错了!
    首先你声明了一个 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方法,那么就不会报错了!
      

  3.   

    aaa a=new aaa("传递的参数"){}这个是new的aaa这个对象,但是aaa这个类中没有 told()这个方法!!
    下面你重写了 say(){}方法。。但是新添的方法是不起作用的。。不知道你想干嘛。。
      

  4.   

    感谢三楼,那我要用这个匿名类里面的told方法怎么办呢,把他向下转型匿名类又没的名字......
    刚学匿名类,都不太晓得怎么用他.....
      

  5.   

    重写told方法呀!这种写法会经常用在为接口提供实现中
      

  6.   

    在原来的类里面写一个told()方法的空实现 
      

  7.   

    new aaa("传递的参数"){
    public void told(){
    System.out.println("told方法调用");
    }
    public void say(){
    System.out.println("say方法调用");
    }
    }.told();
      

  8.   

    Aaa可以改成抽象类,其中的told为抽象方法;编写匿名类的时候必须实现told方法,然后aaa就可以调用told方法。