interface Beta{}class Alpha implements Beta
{
String testIt()
{
return "Tested";
}
}
public class Test
{
static Beta getIt()
{
return new Alpha();
}
public static void main(String []args)
{
Beta b = getIt();
System.out.println(b.testIt());
}
}

解决方案 »

  1.   

    当然不能,你的Test中还有静态方法,所以就要求Test是静态类。
      

  2.   

    编译提示的是找不到b.testIt()方法按imA(男的不会,会的不男) 的说法  在Test类前加了个static 
    多了一行错误  提示 modifier static not allowed here 那静态类怎么定义....我觉得是动态绑定的问题,b.testIt()调用的应该是父类(这里就是指接口Beta了)的testIt()方法,但是接口Beta中没有这个方法  所以报错了不知道是不是这样
      

  3.   

    晕,看错了。就是你说的原因,你的Beta接口没有定义testIt方法。虽然你实例化的是Alpha类,但是你定义的
    类型是Beta,所以当然按照Beta的规则来定义。
      

  4.   

    当然不能,你的Test中还有静态方法,所以就要求Test是静态类。
    至于这句话我说错了。
    没有这个要求,我把static和abstract给记混了。
    是还有抽象方法的类必须是抽象类。不好意思,没走脑子
      

  5.   

    当然报错
    Beta接口里面根本没有testIt()在Beta接口加上 String testIt(){} 就可以了
      

  6.   

    接口中的方法能有body么????
    很多地方怕面对的问题........我觉得要想通过编译要这样写:
    interface Beta
    {
      String testIt();
    }class Alpha implements Beta
    {
    String testIt()
    {
    return "Tested";
    }
    }
    public class Test
    {
    static Beta getIt()
    {
    return new Alpha();
    }
    public static void main(String []args)
    {
    Beta b = getIt();
    System.out.println(b.testIt());
    }
    }这样通过b就可以调用子类中的testIt()方法了,因为重写了也就是实现了接口中的
    testIt()方法,是这样吧......