面向对象-异常(覆盖时的异常特点)

异常在子父类覆盖中的体现:

1、子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者改异常的子类。

2、如果父类方法抛出多个异常,那么子类在覆盖改方法时,只能抛出父类异常的子集。

3、如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。

     如果子类方法发生了异常,就必须要进行try处理,绝对不能抛。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 覆盖,又称重写或重载,是面向对象编程中的一种重要概念。它指子类对父类中已有的方法进行重新定义,使得子类中的方法能够覆盖父类中的方法,从而实现多态性。 要使用覆盖,需要遵循如下规则: - 方法名、参数列表、返回类型必须完全一致 - 方法的访问权限不能比父类中的方法更严格 - 方法异常类型不能比父类中的方法更广 覆盖有助于提高代码的复用性和可维护性。 ### 回答2: 面向对象编程中最重要的概念之一是覆盖覆盖发生在两个有继承关系的类之间,其中,子类覆盖了父类中的方法。简单来说,子类中的方法与父类中的方法具有相同的名称和参数列表。 覆盖主要包括三个方面的内容:方法名称、参数列表以及返回类型。在覆盖的过程中,子类可以改变任何一个或多个方面的内容,但只要方法的名称和参数列表相同,就可以进行覆盖覆盖的主要作用是实现多态性。在面向对象编程中,多态指的是同一个方法或同一个类在不同的情况下表现出不同的行为。例如,一个父类有一个run方法,这个方法被多个子类继承并覆盖,这些子类的run方法可以根据不同的需要执行不同的代码,这就是多态性的体现。 需要注意的是,在进行覆盖子类方法访问控制符不能低于父类的方法访问控制符。例如,如果父类的方法是public,那么子类方法也必须是public,不能是private或protected。 覆盖还有一些注意事项。首先,覆盖必须使用@Override注解,这样可以确保方法签名的正确性。其次,在覆盖过程中,可以使用super关键字调用父类的方法实现,这个功能非常有用。 最后,需要注意的是,覆盖只适用于非静态方法。静态方法不受覆盖影响,因为静态方法是根据类调用,而不是根据对象调用。 总之,覆盖面向对象编程中非常重要的一个概念。它可以实现多态性,并且可以根据不同的需求调用不同的方法实现。同,需要注意覆盖的访问控制符、使用@Override注解以及调用父类方法的方式。 ### 回答3: Java中的覆盖指的是在子类中使用相同的方法名称、参数列表和返回类型重新定义父类中已经存在的方法,从而达到替代父类中方法的效果。 父类中的方法子类覆盖后,当调用子类对象的该方法,实际上是优先调用子类中的方法,而不是父类中的方法。这就是覆盖的作用。 覆盖也可以称作重写,其实质是子类继承了父类的方法,并重新实现了这些方法,从而强化了子类对这些方法的掌控能力,实现了更加灵活的程序设计。 在将一个方法覆盖,需要注意以下几点: 1.方法名称、参数列表、返回类型必须与被覆盖方法相同,否则无法实现覆盖。 2.子类覆盖方法不能比父类中的方法访问级别更严格,例如:如果父类中的方法为public,那么子类中被覆盖方法也必须为public,不能为private或者protected。 3.被覆盖方法不能为final或者static,因为final的方法不能被重新定义,而static的方法不属于任何对象,不能被继承。 在实际程序设计中,也需要注意覆盖的使用方式。例如,当父类中的方法覆盖子类中的方法可以根据需要选择是完全重写父类中的方法,还是在父类方法的基础上增加新功能。同,在使用super关键字调用父类中被覆盖方法,需要注意调用的方式和位置,避免出现死循环或者错误的调用结果。 总的来说,覆盖是Java中一个重要的特性,它使得程序设计更加灵活,同也需要程序员在设计根据实际需要合理使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值