如有不正确之处,希望有大神能指出来,我写的不一定是对的,仅供参考!
实现方法重载的必要条件:
(1)在同一个类中 (2)方法的名称相同 (3)参数的个数、类型、顺序不同 (4)与返回值类型和访问权限无关 (5)与异常无关
实现方法重写的必要条件:
(1)必须有继承关系 (2)发生在子类 (3)方法的名称相同 (4)参数的列表 (5)返回值类型与父类方法的返回值类型相同或者是父类方法返回值的子类 (6)访问权限>=父类
异常对重写的的影响:
(1)如果父类的方法使用throws声明一个Exception类型的异常,那么子类在重写该方法时,如果没有调用父类的方法,无需做处理 ,如果调用了父类的方法,要求必须做处理,处理方式两种,try-catch或throws向上声明!
(2)如果父类的方法没有异常,子类在重写该方法时,如果有Exception类型异常,必须自己做处理try-catch!如果不想处理,给父类中的方法使用throws添加异常。
(3)子类重写方法时,抛出的异常类型与父类方法抛出的异常类型相同,或都是父类异常的子类!
举例:父类 方法抛出是Exception 那么子类抛出的异常类型,可以是Exception或Exception的子类(RuntimeException)
package com.test.test;
public class Father {
public void show() throws Exception{
}
class Son extends Father{
@Override
public void show() throws Exception {
super.show();
}
}
}
package com.test.test;
public class Father {
public void show() throws Exception{
}
class Son extends Father{
@Override
public void show() throws RuntimeException {
}
}
}