java 重载和重写的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 重载和重写的区别相关的知识,希望对你有一定的参考价值。
参考技术A1.定义区别:
①重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。
②覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样。
2.类的关系区别
覆盖是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系。
3.产生方法区别
覆盖只能由一个方法或只能由一对方法产生关系;重载是多个方法之间的关系。
4.参数列表要求区别
覆盖要求参数列表相同;重载要求参数列表不同。
5.调用方法区别
覆盖关系中,调用方法体是根据对象的类型来决定;而重载关系是根据调用时的实参表与形参表来选择方法体的。
扩展资料
方法的重写:
1、在子类中可以根据需要对从基类中继承来的方法进行重写。
2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。(注:返回值可以为父类中返回值的子类型.参数若为子类,则不是重写是重载)
3、重写方法不能使用比被重写的方法更严格的访问权限。
4. 重写方法不能声明抛出比被重写方法范围更大的异常类型。
总结:重写是子类对所继承父类相同方法的一种更改,这个更改需要遵循格式按照父类的格式,访问权限,抛出异常等等,都在父类方法控制范围内,内部具体实现可以实现不同的效果。
重写和重载的区别
参考技术A重载和重写的区别如下:
1、定义不同。重载是定义相同的方法名、参数不同,重写是子类重写父类的方法。
2、范围不同。重载是在一个类中,重写是子类与父类之间的。
3、多态不同。重载是编译时的多态性,重写是运行时的多态性。
4、参数不同。重载的参数个数、参数类型、参数的顺序可以不同,重写父类子方法参数必须相同。
5、修饰不同。重载对修饰范围没有要求,重写要求重写方法的修饰范围大于被重写方法的修饰范围。
方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数。重载Overloading是一个类中多态性的一种表现。
Java的方法重载就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
以上是关于java 重载和重写的区别的主要内容,如果未能解决你的问题,请参考以下文章