在开发java的过程中,java重载和覆盖也是java人员经常会使用的,对于新手java来说,不太清楚java重载和覆盖的区别有哪些?那么接下来,我们就来给大家讲解一下这方面的内容。
1、重载
(1)方法重载是让类以统一的方法处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数(类型)。重载Override是一个类中多态性的一种表现。
(2)java的方法重载,就是在类中可以创建多个方法,他们具有相同的名字,但具有不同参数和不同的定义。调用方法时通过传递给他们不同的参数个数和参数类型来决定具体使用那个方法,这就是多态性。
(3)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不同。无法以返回类型来作为重载函数的区分标准。
2、重写(覆盖)
(1)父类与子类的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写。在java中,子类可继承父类的方法,则不需要重新编写相同的方法。但有时子类并不想原封不动继承父类的方法,而是想做一定的修改,这就采用方法重写。方法重写又称方法覆盖。
(2)若子类中的方法与父类的中的某一方法具有相同的方法名、返回类型和参数表,则新方法覆盖原有的方法。如需要父类的原有方法,可以使用super关键字,该关键字引用房钱类的父类。
(3)子类函数访问权限大于父类。
Java 方法重载 (OverLoad)与方法覆盖(Override)的区别:
1、方法覆盖和方法重载具有以下相同点:
都要求方法名相同;
都可以用于抽象方法和非抽象方法之间;
2、不同点
方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致;
方法覆盖返回类型必须一致,方法重载对此不做限制;
方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从父类中继承而来的方法);
方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制;
父类的一个方法只能被子类覆盖一次,而一个方法在所在类中可以被重载多次;
其实简单的理解就是覆盖就是函数名,参数列表,返回值等完全一样,函数体不一样。 重载就是只有函数名一样,参数不完全一样,返回值可以一样也可以不一样。最后大家如果想要了解更多java常见问题知识,敬请关注奇Q工具网。
推荐阅读: