重写与重载的区别
⼀、java中的重载与重写的区别:
1、重载发⽣在本类,重写发⽣在⽗类与⼦类之间;
2、重载的⽅法名必须相同,重写的⽅法名相同且返回值类型必须相同;
3、重载的参数列表不同,重写的参数列表必须相同。
⼆、重载(Overload)
重载发⽣在本类,⽅法名相同,参数列表不同,与返回值⽆关,只和⽅法名,参数列表,参数的类型有关.
重载(Overload):⾸先是位于⼀个类之中或者其⼦类中,具有相同的⽅法名,但是⽅法的参数不同,返回值类型可以相同也可以不同。
(1):⽅法名必须相同
(2):⽅法的参数列表⼀定不⼀样。
(3):访问修饰符和返回值类型可以相同也可以不同。
其实简单⽽⾔:重载就是对于不同的情况写不同的⽅法。 ⽐如,同⼀个类中,写不同的构造函数⽤于初始化不同的参数。
⼆、重写(Overriding)
重写发⽣在⽗类⼦类之间,⽐如所有类都是继承与Object类的,Object类中本⾝就有equals, hashcode,toString⽅法等.在任意⼦类中定义了重名和同样的参数列表就构成⽅法重写.
重写(override):⼀般都是表⽰⼦类和⽗类之间的关系,其主要的特征是:⽅法名相同,参数相同,但是具体的实现不同。
构造函数可以被重载重写的特征:
(1):⽅法名必须相同,返回值类型必须相同
(2):参数列表必须相同
(3):访问权限不能⽐⽗类中被重写的⽅法的访问权限更低。例如:如果⽗类的⼀个⽅法被声明为public,那么在⼦类中重写该⽅法就不能声明为protected。
(4):⼦类和⽗类在同⼀个包中,那么⼦类可以重写⽗类所有⽅法,除了声明为private和final的⽅法。
(5):构造⽅法不能被重写,
简单⽽⾔:就是具体的实现类对于⽗类的该⽅法实现不满意,需要⾃⼰在写⼀个满⾜于⾃⼰要求的⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。