重写和重载的区别

1.重写Override

  • 子类继承父类,子类就继承了父类的方法,而不需要重新编写相同的方法,但是有时子类不想原封不动地继承父类的方法,而需要做一定的修改,这就需要采用方法的重写。所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下,对方法体进行修改或重写,这就是重写方法。
  • 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如果仍然需要使用父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
  • 子类函数的访问修饰权限不能少于父类的。(public>protected>default>private)

2.重载Overload

  • 方法重载是让类以统一的方式处理不同类型的一种手段,java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
  • 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同,无法以返回类型作为重载函数的区分标准。

3.重写与重载的区别

  • 方法的重写与重载都是实现多态的方式,区别在于重载实现的是编译时的多态性,而重写实现的是运行时的多态性。
  • 重载发生在一个类中,同名的方法如果参数列表不同则为重载;重写发生在子类与父类之间,重写要求方法有相同的参数列表,有相同的返回类型,比父类被重写的方法更好访问,不能比父类被重写方法声明更多的异常。

引用
https://blog.csdn.net/wintershii/article/details/80558739

你可能感兴趣的:(重写和重载的区别)