日期:2014-05-20  浏览次数:20655 次

实例化中出现的问题,谢谢大家
class   Zoo
{
Animal   getAnimal()   //Animal是一个接口类型
{
return   new   Animal();
}
}
class   Test
{
public   static   void   main(String[]   args)
{
Zoo   z=new   Zoo();
Animal   an=z.getAnimal();//Animal是接口,那这句话是不是就不是实例化了呢?
}
}
这里面的getAnimal是非静态的方法,为什么可以在static   main中初试化一个接口呢。

------解决方案--------------------
如果Animal是一个接口类型
class Zoo
{
Animal getAnimal() //Animal是一个接口类型
{
return new Animal(); //-----------此语句可以通过?接口不可以
}



------解决方案--------------------
return new Animal(){ };

建议楼主好好看看基础的东西
------解决方案--------------------
Animal an=z.getAnimal();//Animal是接口,那这句话是不是就不是实例化了呢?
是用接口接受具体的实例,这个相当于
Person p = new Person( "亚当 ", "男 ");

这里面的getAnimal是非静态的方法,为什么可以在static main中初试化一个接口呢。
-------
class A{
public void fun(){}
public static void main(String args[]){
fun();//这个才是在静态方法中调用非静态方法,你这个是一个具体的实例调用自己本身的方法
}
}