Java中重载与重写的区别

来源:互联网 发布:ubuntu debian fedora 编辑:程序博客网 时间:2024/06/10 07:37
重载overload)的含义:
在同一个类中,允许存在一个以上的同名函数,只要它们的参数列表(参数个数,参数类型)不同即可,这种情况就叫做重载。
重载的好处:便于阅读,优化了程序设计。
 总结:
        函数的功能一样,仅仅是参与运算的未知内容不同时,可以定义多函数,却使用统一函数名称,这样方便阅读。在调用时,虚拟机通过参数列表的不同来区分同名函数。
重载与返回值类型无关,只看参数列表

重写(overriding)也成覆盖:在子父类存在一模一样的成员方法时,子类对象会优先使用本类自己的方法。这种情况在 java 中称为:方法的重写(覆盖、 override )
(1)父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某个方法与其父类有相同的名称和参数,我们说该方法被重写。在Java中,子类可以继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不是原封不懂滴继承父类中的方法,而是做出一定的修改,这就需要采用方法的重写。方法的重写也成为方法的覆盖。
(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回值类型和参数列表,则新方法覆盖原有的方法。如需要父类中原有的方法,可以使用super关键字,该关键字引用当前类的父类。
(3)子类函数的访问修饰修饰权限不能小于父类的。
(4)父类中被private修饰的方法(私有成员不能被子类继承),不参与方法重写。如果在子类中书写了和父类中    private方法相同的函数时,该函数不属于重写函数,而属于子类特有的方法。
(5)父类中静态方法,子类中也只能静态重写
提示:在使用方法重写时,只要记住子类重写方法和父类方法完全一模一样!!!
为什么需要重写呢?
子类继承父类后 ,有可能父类中的某个或某些功能不能完全适用于子类需求,这时子类就会把父类中的功能进行重新定义(重写)
0 0
原创粉丝点击