重写和重载的区别

21 阅读1分钟

重写和重载的区别

重写(override)

重写,顾名思义就是重新写一遍的意思 ,在继承和实现的时候,就会用到重写,其实就是把父类的方法重新写一篇,因为子类继承了父类的方法,但有时候就会叛逆,并不想原封不动的继承这个方法,方法里面写出自己的想法。所以,在方法名,参数列表,返回类型(除了返回值是父类的方法返回值的子类)都相同的时候,对方法体进行重写或者修改,这就是重写。

但是注意的是

  1. 子类的方法的访问修饰权限不可以小于父类的方法的。
  2. 不可以继承父类的静态方法和静态变量
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){}