Java重载与重写:详细解析及区别对比
java中重载与重写的区别
Java中有两种,一种是重写方法,一种是成员方法。但功能不同。
相同成员是指父类继承该类后,可以重写父类的方法和属性。
如果类的方法和方法名与父类相同,则父类中的属性和方法会被覆盖。
它们只会损害同一类中的方法。
类和父类之间存在重叠,属性和方法都可以被重写。
因为它使得重写和附加写入变得困难。
java重载和重写的区别
重载和重写在Java中是不同的概念。
1.重载
重载是一个同名的方法。
但参数列表不同。
您可以定义多个具有相同名称但不同参数的方法。
重载的方法必须存在于同一个类中,并且方法名和参数列表必须完全相同。
仅参数类型或参数数量可能不同。
重载方法可以有各种访问修饰符。
当调用重载方法时,Java编译器根据传递的参数类型和数量来决定调用哪个方法。
2.重写
重写是指子类重写了超类允许访问的方法的实现过程。
返回类型、方法名称和参数列表必须相同。
类的方法与其父类的方法相同。
子类重写超类方法的目的是改变超类方法的原始功能或添加新功能。
如果超类中的对象在子类中使用此方法,则子类的实现将覆盖超类的实现。
重写是面向对象编程的一个重要特性,它提高了类的继承性和可重用性。
子类重写超类方法时,必须遵循其访问权限不能低于超类方法的原则。
重载的特点:
1.重载发生在同一个类中。
2.方法名称相同,但参数列表不同。
参数的数量可以不同,并且参数的类型可以不同。
3.重载方法可以有各种访问修饰符。
重写特点:
1.重写发生在超类和子类之间。
子类重写超类方法来实现特定功能或更改原始功能。
2.子类重写的方法必须与超类方法具有相同的方法名称和参数列表。
并且返回类型必须与父类方法或其子类型匹配。
3.子类重写的方法不能比超类方法具有更受限制的访问权限。
例如,如果超类方法是公共的,则被子类重写的方法不能是受保护的或私有的。
java重载和重写的区别
1.定义区别:
①重载是指不同的函数使用相同的函数名,但函数参数的数量或类型不同。
根据调用时的函数参数来区分不同的函数。
②覆盖(也叫重写)是指在派生类中重新实现基类中的虚函数(注意是虚函数)。
即函数的名称和参数相同,但函数的实现不同。
2.类关系的区别
Overriding是子类和父类之间的关系,是纵向关系;重载是同一个类中方法之间的关系,是横向关系。
3.生成方法的差异
重写只能由一个方法或一对方法生成;重载是多个方法之间的关系。
4.参数列表要求不同
重写需要相同的参数列表;重载需要不同的参数列表。
5.调用方法的区别
覆盖关系中,根据对象类型确定调用方法体,而重载关系中,根据select调用时的实参列表和形参列表方法体。
扩展信息
重写方法:
1在子类中,可以根据需要重写从基类继承的方法。
2.被重写的方法和被重写的方法必须具有相同的方法名、参数列表和返回类型。
(注:返回值可以是父类中返回值的子类型,如果参数是子类,则不是重写而是重载)
3.被重写的方法不能使用除被重写的方法之外的其他方法。
更严格的访问权限。
4.被重写的方法不能声称抛出比被重写的方法更广泛的异常类型。
总结:重写就是对子类继承的父类的相同方法进行修改。
这种修改必须遵循父类格式、访问权限、异常抛出等,都在父类文件的方法控制范围内,具体内部实现可以达到不同的效果。