首页 / 科技数码 / 正文

重载与重写(覆盖)的区别。 

重载与重写(覆盖)的区别主要表现在以下几点:

1. 重载(overload)发生在同一个类中,或者在有继承关系的子类中。重写(override)发生在子类继承父类时,子类对父类的方法进行重新实现。

2. 重载和重写的方法名都相同,但重载的参数列表必须不同(参数类型、个数或顺序),而重写的方法参数列表必须相同。

3. 重载和重写的方法返回值类型可以相同,也可以不同。但重写的方法返回值类型必须与被重写的方法返回值类型相同或为其子类。

4. 重载的方法访问修饰符可以相同或不同,但重写的方法访问修饰符必须大于或等于被重写方法的访问修饰符。

5. 重载的方法可以抛出不同的异常,或者不抛出异常。但重写的方法所抛出的异常必须与被重写方法所抛出的异常相同或为其子类。

6. 被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。

7. 静态方法不能被重写,但可以被重载。如果强行重写成非静态方法,会编译出错。

如有侵权请及时联系我们处理,转载请注明出处来自