1.重载
方法的重载是指在同一个类中,具有相同名字的构造方法其返回值类型(包含返回空void)或者参数个数不同,通过返回值或者参数个数的不同进行调用的方法。如下图
public static int add(int a, int b){
return a+b;
}
public static double add(int a, double b){
return a+b;
}
对于名为add()的构造方法分别返回int型和float型的返回值,我们可以通过对函数实例化对象后传不同的参数进行调用如:a.sdd(3,4)则是调用第一个方法,而a.add(3,3.0)则是调用第二个方法。
方法的重载主要是为了节省命名空间和提高代码的可读性。
2.重写
方法的重写是在子类继承父类时,子类的方法和父类的方法相同(访问修饰限制符,返回值类型, 方法名, 参数列表),方法体不同。这种子类的方法将父类的方法覆盖叫做重写。
class Teacher{
<span style="color:#ff6666;">public void sleep()</span>{
<span style="background-color: rgb(102, 204, 204);">System.out.println("老师在睡觉");</span>
}
}
class JavaTeacher extends Teacher{
<span style="color:#ff6666;">public void sleep()</span>{
<span style="background-color: rgb(102, 204, 204);">System.out.println("Java老师在睡觉");</span>
}
}
其中红字方法部分父类和子类必须相同,蓝字部分是我们可以随意修改的!
重载和重写的区别
重写(override):在父子类的继承中有相同的方法,唯一不同就是方法体,一般是父类的该方法满足不了子类的需求所以才发生重写。
重载(overload):重载是在同一个类中,有着相同的 方法名但是参数的数据类型或者参数的个数不同这两个方法就是重载。