重写和重载的区别
重写(override)
重写,顾名思义就是重新写一遍的意思 ,在继承和实现的时候,就会用到重写,其实就是把父类的方法重新写一篇,因为子类继承了父类的方法,但有时候就会叛逆,并不想原封不动的继承这个方法,方法里面写出自己的想法。所以,在方法名,参数列表,返回类型(除了返回值是父类的方法返回值的子类)都相同的时候,对方法体进行重写或者修改,这就是重写。
但是注意的是
- 子类的方法的访问修饰权限不可以小于父类的方法的。
- 不可以继承父类的静态方法和静态变量
public class People {
public static String name="father";
public static void getname(){ //不可以继承static修饰的静态方法
System.out.println("我是父类");
}
public void getages(){
System.out.println("我是父类,不是静态方法");
}
public class Student extends People{
@Override
public void getages() {
super.getages();
}
}
重载(overload)
在同一类中,同名的方法如果有不同的参数列表(参数类型不同,参数个数不同,参数的位置不同)那么就是重载。返回值的类型没有要求,可以相同也可以不相同,但是不可以把返回值的类型相不相同作为判断是否为重载的
public void sayHello(){}
public void sayHello(int a,int b){}
public void sayHello(int a,String b){}