Java中重载和重写的区别 ?
- 二者的概念
- 重载是同一类中,方法名相同,参数列表不同的一组方法的定义
- 重写:子类是可以继承父类的某些方法的,当父类的方法对子类不适用时,需要在子类中写一个和父类一样的方法(当然方法内的程序块是不一样的),此处“一样”指方法名必须一样、返回值类型互相兼容、参数个数顺序类型必须一致等等。此时如果子类要用这一方法,就会直接调用覆盖过的方法,而当没有检测到重写时,才会调用从父类继承下来的方法
- 重载和重写的具体规则
- 重载:不表现为多态性
重写:表现为多态性
重载,是指允许存在多个同名的方法,而这些方法的参数不同。编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法不同的方法。它们的调用地址就在编译器就绑定了。Java的重载是可以包括父类和子类的,也就是子类可以重载父类的同名的不同参数的方法。
对于重载而言,方法调用之前,编译器就已经确定了要调用的方法,也叫静态绑定
对于多态,只有等到方法调用的那一刻,解释运行器才会确定所要调用的具体方法,