什么是java方法重载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是java方法重载相关的知识,希望对你有一定的参考价值。
覆盖是override方法重写 重载是overload按照教科书上的定义,重载就是具有相同函数名,返回类型可以不同,参数个数、顺序、类型不同的函数。我的理解是重载是发生在两个或者是更多的函数具有相同的名字的情况下。
重写就是覆盖父类的方法,和父类有相同返回类型,参数,甚至是抛出的异常,重写方法不能为private,运用中最典型的就是对接口方法的覆盖。方法的重写Overriding和重载Overloading是Java多态性的不同表现.
重写Overriding是父类和子类之间多态性的一种表现;如果在子类中定义某方法和其父类有相同的名称和参数,我们说该方法被重写 (Overriding).子类的对象使用这个方法时,将调用子类中的定义,对他而言,父类中的定义如同被"屏蔽"了.
重载Overloading是个类中多态性的一种表现;如果在一个类中定义了多个同名的方法,他们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading).重载的方法是能改动返回值的类型.
现实例子:你对比上面看,比如一老爹是木工。儿子继承老爹也是木工。
老爹有个做柜子的独特技术(方法),只需要用到工具锤子和木头(参数),
儿子根据老爹这个做柜子的技术延伸出很多种技术,他懒得再起名就也对外宣称叫做柜子独特技术。
1个继承自老爹,相同的方法名,相同的工具,但有自己的想法,工序有改动。儿子做木工活用到这个技术方法的话就叫重写。
另外的自创,但也叫做柜子独特技术,但用工具不同有:
木头。(儿子牛,不用锤子照样做柜子。。。)
锯子,木头。(也是木头柜子)
锤子,铁皮。(铁皮柜子)
以上3中为重载。
明白?不明白给我发消息。呵呵~ 参考技术A 首先给LZ一个例子先吧
class ChongZai
public void a(int a);
public void a(Strting a);
public void a(int a,int b);
如上就是一个重载了 而重载要满足一下条件:
1.必须是同一个类
2.方法名(也可以叫函数)一样
3.参数类型不一样或参数数量不一样
同时我也给LZ讲一下重载的作用吧 还是以上面的例子说吧
ChongZai cz =new ChongZai();
cz.a(1); //调用a(int a);
cz.a("传的参数"); //调用a(String a)
cz.a(1,2); //调用a(int a,int b)
上面已经说了调用哪个方法了 而这个调用方法是程序按照你输入的参数来判断调用哪个方法的
重载的功能也讲下吧 就比如说你做游戏 那么可能游戏可以有多个人完 而完的人数又不确定是几个人 那么就可以用到重载了 参考技术B 重载就是
在同一个类中
方法名字一样,参数列表不一样
对返回类型和访问权限没有严格要求
的方法 参考技术C
在java中,同一个雷中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载,这个过程称为方法重载。
例子:
public void a(int a)
public int a()
public void a(int a,String s)
三个方法都称作a,但是参数列表不同,即加粗字体。这个过程称为方法重载。
参考技术D 同一个类 函数名一样 参数名/参数个数/参数顺序不一样以上是关于什么是java方法重载的主要内容,如果未能解决你的问题,请参考以下文章
Java中的方法覆盖(Overriding)和方法重载(Overloading)是啥意思?