java中的方法重写与重载之间我不是很明白,请举点现实中的例子
发布网友
发布时间:2022-04-18 06:47
我来回答
共4个回答
热心网友
时间:2022-04-18 08:17
方法的重写Overriding和重载Overloading是Java多态性的不同表现.
重写Overriding是父类和子类之间多态性的一种表现;如果在子类中定义某方法和其父类有相同的名称和参数,我们说该方法被重写 (Overriding).子类的对象使用这个方法时,将调用子类中的定义,对他而言,父类中的定义如同被"屏蔽"了.
重载Overloading是个类中多态性的一种表现;如果在一个类中定义了多个同名的方法,他们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading).重载的方法是能改动返回值的类型.
现实例子:你对比上面看,比如一老爹是木工。儿子继承老爹也是木工。
老爹有个做柜子的独特技术(方法),只需要用到工具锤子和木头(参数),
儿子根据老爹这个做柜子的技术延伸出很多种技术,他懒得再起名就也对外宣称叫做柜子独特技术。
1个继承自老爹,相同的方法名,相同的工具,但有自己的想法,工序有改动。儿子做木工活用到这个技术方法的话就叫重写。
另外的自创,但也叫做柜子独特技术,但用工具不同有:
木头。(儿子牛,不用锤子照样做柜子。。。)
锯子,木头。(也是木头柜子)
锤子,铁皮。(铁皮柜子)
以上3中为重载。
明白?不明白给我发消息。呵呵~
热心网友
时间:2022-04-18 09:35
唉我跟你说的简单点吧
你就看参数,参数变了那一定是重载
你看构造方法就是重载的体现。
和原来方法相比只有方法体{}这里面的内容变了的别的地方都没变的那就是重写。
他俩之间没什么关系如果你想让一个方法传进去不同的参数得到不同的内容那就要重载。
就是要改变某个方法的内容那就重写,但是参数返回类型那个架子不能动
热心网友
时间:2022-04-18 11:09
很直白的说
java方法重载就是同一个类中相同的方法名,但是参数类型或参数个数不同的多个方法间叫做重载。(体现了多态性)
java方法重写,是指若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。方法重写又称方法覆盖。
热心网友
时间:2022-04-18 13:01
覆盖,重载与重写大PK:
要确定:覆盖和重载跟"继承"有关,重写仅仅只跟方法的"多态性"有关,我们分开举例讲:
先讲覆盖和重载:
关键词:继承,参数;
覆盖就是方法和父类是一样的,即使是参数也是一样。
重载就是方法的参数和父类不一样,如下举例。
class A {
public void function() {
}
}
class B extends A {
//这个就是覆盖 重点:方法名和参数一样。
public void function() {
}
//它和父类的最大不同是多了个参数,这就是重载了,重点:参数不一样了。
public void function(String s) {
}
//就当前类来将 function为方法名的有2个方法,我们可以讲它被重写了
}
那什么是重写呢 ,一个类中有多个同名的的方法。
关键词:多态,一个类,
就说当前类B来说,具有function同名的有2个方法,我们就可以说function方法重写了。
不知道这样讲是否明白,请参考。