首页 > 编程知识 正文

重载和重写有哪些区别,简述重写和重载

时间:2023-05-03 07:56:05 阅读:20582 作者:3034

重载(Overload ) :在一个类或子类中具有相同的方法名称,但方法的参数不同,返回类型可以相同或不同。

重载方法必须更改参数列表(参数数量和类型不同) (重载方法可以更改返回值类型) )重载方法可以更改访问修饰符) )重载方法可以同一类或更宽的检查异常方法在同一类或子类中重载,返回类型不能是重载函数) (Override ),通常表示子类和父类之间的关系,主要特征是方法名称相同

参数列表和重写的参数列表必须完全匹配的返回类型和重写方法的返回类型可以不同,但必须是父类返回值的派生类。 (在java5和更早版本中返回类型可以不同,但在java7和更早版本中可以不同)访问权限不能低于在父类中重写的方法。 例如,父类的权限必须是公共的,重写子类后的权限不能是保护性的。 父类的成员方法只能由子类重写。 声明为final的方法不可重写。 声明为static的方法不可重写,但可以再次声明。 如果子类和父类位于同一包下,则子类可以重写父类中的所有方法,但声明为private和final的方法除外。 如果子类和父类不在同一包下,则子类只能重写声明为父类的公共和保护的非final方法。 无论重写的方法是否抛出异常,重写的方法都可以抛出任何非强制异常。 但是,重写方法不能抛出新的强制异常,或者可以抛出比重写方法声明的更广泛的强制异常,反之亦然。 无法改写构建方法。 如果不能继承类,则不能重写该类的方法。 注意:不能继承类的构造函数。 你不能用它重写。 一个类可以包含多个构造函数,因此可以重载。 main方法是静态方法,因此不能重写main方法。 但是,虽然可以重载,但JVM将始终调用原始main方法,而不会调用重载的main方法。 私有方法可以重载,不能重写。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。