【Java】重载(Overload)与重写(Override)
方法的语法
修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; }
重载(overload)
/** * 重载Overload: * 同一个类中,多个方法拥有相同的名字,但参数类型以及参数数量必须不一样。 * 返回值可相同也可不相同,但单凭返回值不可用来判断方法之间是否存在。 */ public class example { public void print() {}; //public String print() {}; 参数类型与上一条方法一样,返回值不同,无法通过编译 public void print(int a) {}; public void print(String a) {}; }
重写Override
/** * 1. 重写方法只能存在于父子类间,父子类间的这个方法的参数列表、返回类型必须完全相同 * 2. 重写的方法中,子类的权限修饰符必须>=父类的 * 3. 父类的方法为private时,子类出现同名方法不属于方法的改写,只是在子类内部重新定义的一个方法 * 4. 重写方法中,子类抛出的异常需要小于等于父类抛出的异常 * */ class animal{ int num; public void eat() { System.out.println("fruits"); }; private void run() { System.out.println("run"); } public void count() throws IOException {} } class lion extends animal{ public void eat() {//属于改写 System.out.println("meat"); } public void run() {//不属于改写 System.out.println("jump"); } //public void count() throws ClassNotFoundException {}; 不能抛出父类方法中没有的异常 public void count() throws IOException {} //子类抛出的异常可与父类相同的异常或子异常 }
参考: