一、重载和重写的区别
1、重载(Overloading ):方法名相同,参数列表不同,返回类型可以相同也可以不同。抛出异常可以不同,修饰符可以不同。简单的来说重载是在一个类中对多态性的表现,重写是在父类与子类之间中对多态性的表现。
下面就是从源码中选取String的getBytes()展现的重载方法:
从上面可以看出重载方法名相同,参数个数不同和类型不一样,并且也可以抛出不同的异常。当我们调用方法的时候通过传递的参数来决定具体调用那个方法。
2、重写(Overriding):重写就是子类对父类的方法进行重新定义。
以上就是重载和重写的定义和具体的区别。子类对父类重写父类的方法,即他们的方法名及参数、返回类型相同;抛出异常相同,并且子类重写的方法修饰权限不能小于父类的权限(如果小于则相当于在子类中写了个新的方法,当父类方法为private权限时,子类方法无法继承并重写)。