java中方法的重载是什么意思?

Python018

java中方法的重载是什么意思?,第1张

覆盖是override方法重写重载是overload

按照教科书上的定义,重载就是具有相同函数名,返回类型可以不同,参数个数、顺序、类型不同的函数。我的理解是重载是发生在两个或者是更多的函数具有相同的名字的情况下。

重写就是覆盖父类的方法,和父类有相同返回类型,参数,甚至是抛出的异常,重写方法不能为private,运用中最典型的就是对接口方法的覆盖。方法的重写Overriding和重载Overloading是Java多态性的不同表现.

重写Overriding是父类和子类之间多态性的一种表现如果在子类中定义某方法和其父类有相同的名称和参数,我们说该方法被重写(Overriding).子类的对象使用这个方法时,将调用子类中的定义,对他而言,父类中的定义如同被"屏蔽"了.

重载Overloading是个类中多态性的一种表现;如果在一个类中定义了多个同名的方法,他们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading).重载的方法是能改动返回值的类型.

现实例子:你对比上面看,比如一老爹是木工。儿子继承老爹也是木工。

老爹有个做柜子的独特技术(方法),只需要用到工具锤子和木头(参数),

儿子根据老爹这个做柜子的技术延伸出很多种技术,他懒得再起名就也对外宣称叫做柜子独特技术。

1个继承自老爹,相同的方法名,相同的工具,但有自己的想法,工序有改动。儿子做木工活用到这个技术方法的话就叫重写。

另外的自创,但也叫做柜子独特技术,但用工具不同有:

木头。(儿子牛,不用锤子照样做柜子。。。)

锯子,木头。(也是木头柜子)

锤子,铁皮。(铁皮柜子)

以上3中为重载。

明白?不明白给我发消息。呵呵~

重载与覆盖的区别如下:

一、定义不同:

覆盖意思是指遮盖、掩盖,也指空中某点发出的电波笼罩下方一定范围的地面。

重载,简单说就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。

二、关系不同

1、覆盖是子类和父类之间的关系,是垂直关系;

2重载是同一个类中方法之间的累加,是水平关系。

三、方法的数量不同

1、覆盖只能由一个方法,或只能由一对方法产生关系;

2、重载是多个方法之间的关系。

四、参数不同

1、覆盖要求参数列表相同。

2、重载要求参数列表不同。

扩展资料

重载是可使函数、运算符等处理不同类型数据或接受不同个数的参数的一种方法,关于重载一词在词义上有两种不同的说法:

1、多态:重载是一种多态(如C++,Java),有四种形式的多态:

虚函数多态、模板多态、重载、转换

2、覆盖:

重载(overloaded)和多态关系不大,真正和多态相关的是覆盖。

当派生类重新定义了基类的虚拟方法后,基类根据赋给它的不同的派生类引用,动态地调用属于派生类的对应方法,这样的方法调用在编译期间是无法确定的。因此,这样的方法地址是在运行期绑定的(动态绑定)。

重载只是一种语言特性,是一种语法规则,与多态无关,与面向对象也无关。

不过针对所谓的第二种重载,有一个专门的名词--重写或重定义。重载与重写的区别就在于是否覆盖,重写一般多发生在不同的类且存在继承关系之间,而重载多是在一个类里或者一块代码段里。

参考资料:百度百科-重载

百度百科-覆盖

覆盖是override方法重写 重载是overload

按照教科书上的定义,重载就是具有相同函数名,返回类型可以不同,参数个数、顺序、类型不同的函数。我的理解是重载是发生在两个或者是更多的函数具有相同的名字的情况下。

重写就是覆盖父类的方法,和父类有相同返回类型,参数,甚至是抛出的异常,重写方法不能为private,运用中最典型的就是对接口方法的覆盖。