java中重写方法的规则
时间: 2024-03-15 18:42:00 浏览: 68
在Java中,重写方法必须遵循以下规则:
1.方法签名必须相同:重写方法的名称、参数列表和返回类型必须与被重写方法的名称、参数列表和返回类型完全相同。
2.访问修饰符不能更严格:重写方法不能缩小访问权限,即不能将访问修饰符从父类方法中的public改为protected或private。
3.返回类型必须兼容:重写方法的返回类型必须与被重写方法的返回类型兼容。子类方法的返回类型可以是被重写方法返回类型的子类型。
4.抛出的异常必须兼容:重写方法不能抛出比被重写方法更多的异常,可以抛出与被重写方法相同的异常或其子类异常。
5.方法体必须不同:重写方法的方法体必须与被重写方法的方法体不同,否则是代码冗余,没有意义。
如果重写方法不遵循这些规则,则编译器会给出错误提示。
相关问题
java重写的语法规则
Java中的方法重写是一种子类对父类中同名、同参数列表、同返回类型的方法进行覆盖的机制。Java中方法重写有以下语法规则:
1. 子类中的重写方法必须与父类中被重写方法具有相同的方法名、参数列表和返回类型。
2. 子类中的重写方法不能缩小父类中被重写方法的访问权限,可以扩大。
3. 子类中的重写方法不能抛出比被重写方法更多的异常,可以不抛出异常或抛出更少的异常。
4. 父类中被重写的方法必须使用关键字“public”、“protected”或不写任何访问修饰符,而子类中重写的方法必须使用和父类中被重写的方法相同的访问修饰符。
5. final方法不能被重写。
java子类重写父类方法易错点
Java中子类重写父类方法的时候,有几个易错点需要注意:
1. 方法名、参数列表和返回类型必须与父类方法一致:子类中重写的方法必须与父类方法具有相同的方法名、参数列表和返回类型。如果不一致,会导致编译错误。
2. 访问修饰符不能更严格:子类重写的方法的访问修饰符不能比父类方法更严格。例如,如果父类方法是public,那么子类方法可以是public或者protected,但不能是private。如果违反了这个规则,编译器会报错。
3. 子类方法不能抛出比父类方法更宽泛的异常:子类重写的方法不能抛出比父类方法更宽泛的异常。也就是说,子类方法可以抛出与父类方法相同的异常或者其子类异常,或者不抛出异常,但不能抛出父类方法没有声明的异常。如果违反了这个规则,编译器会报错。
4. 子类方法不能降低访问修饰符:子类重写的方法不能降低父类方法的访问修饰符。例如,父类方法是public,那么子类方法也必须是public,而不能是protected或者default。如果违反了这个规则,编译器会报错。
5. 子类方法不能使用final修饰符:子类重写的方法不能使用final修饰符。final修饰符用于限制方法的重写,如果在子类中使用final修饰方法,编译器会报错。
总结起来,子类重写父类方法需要遵守方法签名一致、访问修饰符不能更严格、不能抛出更宽泛的异常、不能降低访问修饰符、不能使用final修饰符这几个规则。如果不遵守这些规则,编译器会报错。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)