方法的重载
public int cal(int x){ return x*2; } public int cal(int x,int y){ return x+y; }
英文为Overloading,是指在一个类中定义相同的名字,但参数不同的多个方法,调用时会根据不同的参数表达,来选择对应 的方法
重载方法可以修改返回类型,也可以修改访问权限,但要注意不能只修改这两者,如果只是修改返回类型或访问权限 ,那调用方法根本无法区分实际调用的是哪个方法,简而言之,只要能够区分开来方法不会造成混淆,则构成重载
方法的重写
class Father{ public int cal(int x){ return x*2; } } class Son extends Father{ @Override public int cal(int x){ return x*4; } }
英文为Overwrite或者Override,是指子类覆盖父类的方法逻辑,子类的重写方法必须和父类的被重写方法具有相同的方法名称 参数列表和返回类型并且重写方法 不能使用比被重写方法 更严格的访问权限 比如父类的方法是public ,子类的重写方法就不能为private
总结一下
重载 | 重写 |
---|---|
发生在一个类之间 | 发生在子类和父类之间 |
必须修改方法参数 | 不能修改方法参数 |