首页 > 编程知识 正文

标题重载与重写的区别,方法的重载和重写的联系

时间:2023-05-04 12:17:20 阅读:153038 作者:2974

重载差异重写:重写发生在继承中,子类不仅要重写父类的方法方法主体,而且实现方法也不同,参数和返回类型必须相同,并且访问修饰符必须大于父类的权限。

改写规则:

1 .参数列表必须与重写的完全相同

2 .被重写的访问修饰符必须大于被重写的访问修饰符;

3 .重写返回的类型必须与重写的类型匹配或兼容。

4 .重写时抛出的异常必须小于被重写时抛出的异常。 可以相同,也可以是例外的子类

5 .被改写的方法不是private,私人的情况下不称为改写,与父类无关,重新定义了方法

6 .不能将静态方法改写为非静态方法(编译会出错) )。

7 .无论父类的方法是用常量final限定的还是任何访问修饰符,都不能重写该方法

重载发生在同一类中,数量不同于方法名称以外的参数类型。 重载的返回类型没有特殊要求,不能根据返回类型进行区分。 在同一类中,方法名称相同,参数列表不同;

过载规则:

1 .使用重载时,只能通过相同的方法名称、不同的参数格式来实现。 不同的参数类型可以是不同的参数类型、不同的参数数量和不同的参数顺序(参数类型必须不同)。

2 .不能通过访问修饰符、返回类型或抛出的异常进行重载

3 .方法的异常类型和数量不影响重载。

衔接与不同1 .这两种都是实现多态性的方式,不同的是过载是编译时出现的多态性,另一种是运行时的多态性。

2 .重载发生在类中,而重写发生在子类继承父类期间。 重载发生在一个类中,如果同名方法具有不同的参数列表(参数类型不同、参数数量不同和/或参数数量不同),则视为重载。

3 .重写发生在子类和父类之间。 重写中,子类的重写方法和父类的重写方法具有相同的参数列表,具有兼容的返回类型,比父类的重写方法更容易访问,并且不能声明比父类的重写方法更多的异常。

4 .过载对返回类型没有特殊要求,不能根据返回类型区分。

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