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());
}
}
{
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());
}
}
多了一行错误 提示 modifier static not allowed here 那静态类怎么定义....我觉得是动态绑定的问题,b.testIt()调用的应该是父类(这里就是指接口Beta了)的testIt()方法,但是接口Beta中没有这个方法 所以报错了不知道是不是这样
类型是Beta,所以当然按照Beta的规则来定义。
至于这句话我说错了。
没有这个要求,我把static和abstract给记混了。
是还有抽象方法的类必须是抽象类。不好意思,没走脑子
Beta接口里面根本没有testIt()在Beta接口加上 String testIt(){} 就可以了
很多地方怕面对的问题........我觉得要想通过编译要这样写:
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()方法,是这样吧......