interface A {
int method1(int i);
int method2(int j);
}
为什么下面这样实现接口是错误的 接口不能重载吗?(我顺便问问:重载能不能跨类,比如这个int method1() 算不算做重载)
class B implements A {
int method1() { }
int method2() {
}
}而这样就是正确的
class B implements A {
int method1(int i) { }
int method2(int j) { }
}
int method1(int i);
int method2(int j);
}
为什么下面这样实现接口是错误的 接口不能重载吗?(我顺便问问:重载能不能跨类,比如这个int method1() 算不算做重载)
class B implements A {
int method1() { }
int method2() {
}
}而这样就是正确的
class B implements A {
int method1(int i) { }
int method2(int j) { }
}
接口里面的函数和其他函数一样,是可以重载的.
interface A {
int method1(int i);
int method2(int j);
int method1();
}
method1就被重载了.
另外,实现A的B类
abstract class B implements A {
public int method1() {return 0;}
int method2() {return 0;}
}
其中A中定义的method1()(我加的)被B实现了,而楼主定义的method1(int) method2(int)根本就没有被b实现,所以B必须声明为abstract才能通过编译.
overload是什么,我觉得可以看成是一个新函数,它与原来函数的唯一关系就是它们拥有相同的函数名.甚至你可以想象它们是完全不同的两个函数.虽然他们可能实现了相近的语意.
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。对接口来说你的类要implments它,那你就必须写出和接口方法一样的实体方法,包括名字和参数,
楼主的类中的方法没有参数,当然出错了。