interface animal
{
void eat();
void sleep();//(接口类默认权限是public abstract)
}class zoo
{
class tiger implements animal
{
public void eat()
{
System.out.println("tiger eat");
}
public void sleep()
{
System.out.println("tiger sleep");
}
  
  animal getanimal()
  {
   return new animal()
  
   {
   public void eat()
   {
   System.out.println("animal eat");
   }
  
   public void sleep()
   {
   System.out.println("animal sleep");
   }
   };
  }
}

}class test
{
public static void main(String[] para)
{
zoo zz=new zoo();
animal an=zz.getanimal();
an.eat();
an.sleep();
}
}
E:\javalearn\lesson>javac animal.java
animal.java:45: cannot resolve symbol
symbol  : method getanimal ()
location: class zoo
                animal an=zz.getanimal();
这个问题是一个老师视频中的内容,我在编译的时候总是出现这一个错误,请各位朋友指导\指正.

解决方案 »

  1.   

    interface animal {
    void eat(); void sleep();// (接口类默认权限是public abstract)
    }class zoo {
    class tiger implements animal {
    public void eat() {
    System.out.println("tiger eat");
    } public void sleep() {
    System.out.println("tiger sleep");
    }
    } animal getanimal() {
    return new animal() {
    public void eat() {
    System.out.println("animal eat");
    } public void sleep() {
    System.out.println("animal sleep");
    }
    };
    }}public class test {
    public static void main(String[] para) {
    zoo zz = new zoo();
    animal an = zz.getanimal();
    an.eat();
    an.sleep();
    }
    }红颜色的地方少了一个括号,底下多了个括号
      

  2.   

    我先提你个醒,你在做代码的时候要注意缩进的情况,一方面感觉整洁,另一方面好找错误~
    interface animal
    {
       void eat();
       void sleep();//(接口类默认权限是public abstract)
    } class zoo
      {
       class tiger implements animal
       {
         public void eat()
          {    
              System.out.println("tiger eat");
          }
         public void sleep()
          {
              System.out.println("tiger sleep");
          }
       }//end tiger  animal getanimal()
      {
         return new animal()
        {
          public void eat()
          {
            System.out.println("animal eat");
          }
      
          public void sleep()
          {
            System.out.println("animal sleep");
          }
        };
      }//end getanimal()
    }//end zoopublic class test
    {
       public static void main(String[] para)
       {
         zoo zz=new zoo();
         animal an=zz.getanimal();
         an.eat();
         an.sleep();
       }
    }采用楼上的对其方法也是可以的,但我个人认为我这种书写的格式很好阅读代码~
      

  3.   

    还有就是在用主方法的时候,该类要标记为public
      

  4.   

    除了括号的问题。
    zoo zz=new zoo(); 
    animal an=zz.getanimal();
    这样空的对象可以的么? 
      

  5.   

    javac animal.java 
    你怎么编译接口 直接编译主类 其它编译器错误ls都已经说了
      

  6.   

    此视频为孙鑫的java视频,鉴定完毕