重载与重写的区别
重载与重写的区别如下:
区别 | 重载 (overload) | 重写 \ 覆写(override) |
---|---|---|
概念 | 方法名相同; 参数个数、类型必须不同; 返回值可同可不同; | 方法名相同; 返回值类型、参数个数、参数类型完全相同; |
范围 | 一个类 | 继承 |
限制 | 没有权限限制 | 被重写的方法不能比父类有更严格的权限控制 |
重载示例
覆写(重写)Override表示子类中的方法可以与父类中的某个方法的名称和返回值类型完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。
注意:
1.你当前使用的对象是通过哪个类new的。
2.当调用某个方法,如果该方法已经被子类所覆写了,那么调用的一定是被覆写过的方法。
同时还需要注意:同时出现这三种访问控制权限:private<default<public时。那么也就意味着如果父类使用public进行方法声明,那么子类必须也使用public;如果父类使用default,那么子类可以使用default或者public。