欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

父类卡子类卡java_Java中关于子类覆盖父类的抛出异常问题

发布时间:2025/4/16 java 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 父类卡子类卡java_Java中关于子类覆盖父类的抛出异常问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Java中子类覆盖父类方法抛出异常不能比父类多,这个表述不够准确。

准确一点的描述为:

子类抛出的异常类型不能比父类抛出的异常类型更宽泛。假设父类抛出异常ParentException,另外有两个子类继承自ParentException分别为ChildException1, ChildException2, 那么 子类可以同时抛出异常ChildException1,ChildException2. 满足“子类抛出的异常类型不能比父类抛出的异常类型更宽泛”,这一条件。

注重:

子类也可以选择不进行抛出任何异常,即使他们是父类所定义的异常。

为什么Java设计成这样,下面举个例子进行分析:

package exceptions;

class Sick extends Exception{}

class FeverSick extends Sick{}

class JointSick extends Sick{}

class Children extends People{

public void coldAir() throws FeverSick{ }

}

class Adults extends People{

public void coldAir(){}

}

class Olds extends People{

public void coldAir() throws JointSick{ }

}

public class People {

public void coldAir() throws Sick{ }

}

如上代码,定义了一个父类People类,以及其三个子类Children, Adults, Olds. 假设在父类中有一个冷空气事件,那么它就会抛出一个Sick类型的异常。但是由于三个子类的抵抗疾病的能力不同,那么Adults类由于抵抗力较强,其方法可能不抛出异常。而Children和Adults类型,由于抵抗力较弱,可能抛出Sick类型的不同子类型。但是需要注重的是,子类不能抛出与Sick类完全不相关的异常类型,例如身高Height类型。因为必须把父类作为一个大前提,其子类不能抛出比父类异常更加出格的异常,否则无法进行识别。

大概就是这个意思。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习网上卖,谢谢大家对乐购源码的支持。如果你想理解更多相关内容请查看下面相关链接

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的父类卡子类卡java_Java中关于子类覆盖父类的抛出异常问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。