class Base {
public void amethod(int i) {
}
}class Scope extends Base {
public static void main(String[] args) {
}
//Method Here
}void amethod(long i) throws Exception{}
void amethod(long i){}把下面2个方法放到 //Method Here 里面,这叫过载还是叫重新定义?
public void amethod(int i) {
}
}class Scope extends Base {
public static void main(String[] args) {
}
//Method Here
}void amethod(long i) throws Exception{}
void amethod(long i){}把下面2个方法放到 //Method Here 里面,这叫过载还是叫重新定义?
try {
Scope.amethod(1);
}catch (Exception e) {
}就这样的调用, 你认为是调用哪个函数?
调用抛出异常的那个? 对!
调用没有抛出异常的那个? 也对,谁说加了异常处理语句的操作(Scope.amethod(1))就一定要抛出异常的??
void amethod(long i){} 也应该是public的。
void amethod(long i){}
这2个方法随便放上去一个 叫做方法的重载(Overload) 不知道你说的过载是不是这个
Overload指同样的方法名可以有不同的参数列表
当然,不能2个一起放上去 - -#
如果你子类要放上一个 参数为int的同名方法,这个叫方法的重写(Override),也叫覆盖
此时权限不能比父类的小,抛出的异常不能比父类的大
也就是说 修饰符只能是public (因为父类里面是public)
不能抛出异常(因为父类没有抛),当然 可以抛RuntimeException,因为这个不用try/catch