重载和重写的区别有:
1、定义上不同。重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同,调用的时候根据函数的参数来区别不同的函数。重写是指在派生类中重新对基类中的虚函数重新实现,即函数名和参数都一样,只是函数的实现体不一样。
2、规则不同。重载必须具有不同的参数列表,可以有不同的访问修饰符,可以抛出不同的异常。重写的参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载,其返回的类型也必须一直与被重写的方法的返回类型相同。重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。