方法重载和方法重写的区别是什么精品多篇
重载的规则 篇一
1、必须具有不同的参数列表。
2、可以有不同的返回类型,只要参数列表不同就可以了。
3、可以有不同的访问修饰符。
4、可以抛出不同的异常。
重写和重载的区别 篇二
1、重写
是父类与子类之间多态性的一种表现,如果在子类中定义某方法与其父类有相同的名称和参数,且方法的返回值类型与抛出异常的类型各自与父类的一致,我们说该方法被重写 。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。
2、重载
是一个类中多态性的一种表现。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
3、重写与重载的区别
重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的`功能或返回值。
用好重写和重载可以设计一个结构清晰而简洁的类,可以说重写和重载在编写代码过程中的作用非同一般。下面小编举个例子说明一下。
public class Father
{
public void speak()
{
tln("Father");
}
}
public class Son extends Father
{
public void speak()
{
tln("son");
}
}
这也叫做多态性,重写方法只能存在于具有继承关系中,重写方法只能重写父类非私有的方法。
当上例中 Father类 speak()方法被private时,Son类不能重写 Father类 speak()方法,此时Son类 speak()方法相当与在Son类中定义的一个speak()方法。
Father类 speak()方法一但被final时,无论该方法被public,protected及默认所修饰时,Son类根本不能重写 Father类 speak()方法,试图编译代码时,编译器会报错。例:
public class Father
{
fianl public void speak()
{
tln("Father");
}
}
public class Son extends Father
{
public void speak()
{
tln("son");
} 写
}//编译器会报错。
Father类 speak()方法被时默认修饰时,只能在同一包中,被其子类被重些,如果不在同一包则不能重写。
Father类 speak()方法被时protoeted时,不仅在同一包中,被其子类被重些,还可以不同包的子类重写。
4、重写和重载在规则上的区别
java中方法重载和重写的区别和定义 篇三
重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。
例如: 篇四
public class TestClass1{
public int test(int i){return 1;}
}
public class TestClass2 extends TestClass1{
public int test(int i){return 2;}
}
-
大学联考百日誓师誓词简短霸气句子精彩多篇
在日常学习、工作和生活中,许多人都写过作文吧,作文是由文字组成,经过人的思想考虑,通过语言组织来表达一个主题意义的文体。写起作文来就毫无头绪?这里是勤劳的编辑为家人们整理的大学联考百日誓师誓词简短霸气句子精彩5篇。大学联考给孩子加油句子篇一1.一起走在悠长走道...
-
婚宴祝酒词【多篇】
婚宴祝酒词篇一尊敬的各位朋友,各位来宾,大家中午好!阳光明媚,歌声飞扬,欢声笑语,天降吉祥,在这春风荡漾、生机勃发、大吉大利的日子里,在这天地之合的喜庆之时,我们喜酒相逢,相聚在这XXXX大酒店,欢聚在这鲜花簇拥、喜庆浓郁的宴会大厅,共同为XXX先生和XXX小姐举行新婚礼宴...
-
健康口腔行动方案多篇
2022医生典型先进事迹材料篇一XX从事医疗工作二十余载,救死扶伤,医治的患者不计其数,他对每一例患者都是诚恳相待、精心施治,力求尽快解除患者疾痛。以院为家,默默奉献XX具有强烈的责任心和奉献精神。他一心为患者所想,急患者所急,为了患者的利益,牺牲自我。工作中,他从...
-
澳新银行详情介绍新版多篇
澳新银行管理特色篇一内部控制澳新银行的风险管理,包括其健全的内部控制制度,现在被国际银行业广泛认可为全球最佳实践模式。澳新银行的风险管理制度,包括内部控制制度的有效性也反映在国际评级机构历年来对澳新银行的高评级上。澳新银行认识到完善的内部控制体系...