重载(Overload)
重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
注意:在一个类里面,只有方法名字相同,而参数不同才算是重载,与返回类型无关。既无法以返回值类型作为重载函数的区分标准。
public class NameConflict {
public void show(){}
public int show(){return 1;}
}
像上面这种写法,编译的时候直接会报Error: 已在类 com.chapter9_interface.NameConflict中定义了方法 show()
重写(Override)
重写是子类对父类的允许访问的方法的实现过程进行重新编写, ** 返回值和形参都不能改变 **。即外壳不变,核心重写!
总结
方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。
- 方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。
- 方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。
- 方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
网友评论