我实现了两个不同的接口,但是两个接口中都有一个名字为getMoney(),两个getMoney()函数只有返回值的类型不同,
例如:
public interface A
{
public void getMoney();
}
public interface B
{
public String getMoney();
}
public class Test implements A , B
{
public void getMoney()
{
System.out.println("A.getMoney");
}
public String getMoney()
{
String temp="dfadfa";
return temp;
}
}
当我在new一个Test类的对象t的时候,调用t.getMoney(),会不会出现错误,如果不会出现错误,那么默认情况下调用哪个getMoney()方法呢?如果会出现错误,为什么?
例如:
public interface A
{
public void getMoney();
}
public interface B
{
public String getMoney();
}
public class Test implements A , B
{
public void getMoney()
{
System.out.println("A.getMoney");
}
public String getMoney()
{
String temp="dfadfa";
return temp;
}
}
当我在new一个Test类的对象t的时候,调用t.getMoney(),会不会出现错误,如果不会出现错误,那么默认情况下调用哪个getMoney()方法呢?如果会出现错误,为什么?
应该用内部类来实现.
public class Test implements A {
class InnerTest implements B{
public String getMoney(){
String temp= "dfadfa ";
return temp;
}
}
public void getMoney(){
System.out.println( "A.getMoney ");
}
}
class InnerTest implements B{
public String getMoney(){
String temp= "dfadfa ";
return temp;
}
}
public void getMoney(){
System.out.println( "A.getMoney ");
}
public String getMoneyS(){
return new InnerTest().getMoney();
}
}