关于JAVA接口的一个问题
来源:百度知道 编辑:UC知道 时间:2024/06/25 17:39:52
语法可能确实不能实现,但是你考虑,如果方法名一样,那代表这个动作是不是应该在同一个接口内呢,返回值不同,是不是就是说该动作达到的目的不一样呢,从而可以动作+目的来命名这个方法,那么方法名也就不一样了
我写了一下
public interface test {
void add(int a);
int add(int a,int b);
}
public class test1 implements test{
public static void main(String[] args) {
test1 t1=new test1();
t1.add(10);
int a=t1.add(10, 20);
System.out.println(a);
}
public int add(int a, int b) {
int c=0;
c=a+b;
return c;
}
public void add(int a) {
int c=0;
c+=a;
System.out.println(c);
}
}
你看看这样,参数不同,返回值不要求的
其实这个跟重载是类似的情况,现一个类中两个方法名相同,用返回值是不能区别两个方法的,只能用参数来分别。
楼主如果想一定要这样写的话,让方法的参数不同就行
但是这样的设计很容易引起误会,尽量使用不同的方法名。
最简单的就是把两接口变成一个就好了,返回值不同的问题,返回类型直接Object类型,这终能满足你的要求了把。具体处理交给拿到这个返回值的对象方法处理去。
同名函数可以由 参数类型,参数个数,参数顺序来区分,返回值类型是没有效果的
没有试验,但重写函数时你加上接口名对函数进行操作,试试看看
这样确实会报错,直接无法解决。既然返回值不同,只能采用重新命名一个或两个