这一章节我们来介绍一下使用异常的限制。
1.当父类与接口具有相同的方法而且方法同时抛出不同的异常,这个时候是不允许的。
下面是错误的代码:
package com.ray.ch10;
public class Test extends Father implements MyInterface {//Exception AException in throws clause of Father.methodA() is not compatible with MyInterface.methodA()
}
class AException extends Exception {
}
class BException extends Exception {
}
abstract class Father {
public void methodA() throws AException {
}
public void methodB() {
}
}
interface MyInterface {
public void methodA() throws BException;
public void methodB();
}
上面的代码里面,在Test类里面不能够覆盖methodA这个方法,因为编译器不知道需要指向那个异常。
正确的代码:当父类或者接口某一个的方法被注释,就可以实现的了。
2.当父类的构造方法抛出异常,基类必须有一个构造方法是抛出相同异常或者此异常的父类。
package com.ray.ch10;
public class Test extends Father {
public Test() throws AException {
super();
// TODO Auto-generated constructor stub
}
}
abstract class Father {
public Father() throws AException {
}
}
class AException extends Exception {
}
或者
package com.ray.ch10;
public class Test extends Father {
public Test() throws Exception {//不同的地方
super();
// TODO Auto-generated constructor stub
}
}
abstract class Father {
public Father() throws AException {
}
}
class AException extends Exception {
}
3.当父类方法没有抛出异常,子类覆盖的方法不能够抛出异常
下面是错误的代码:
package com.ray.ch10;
public class Test extends Father {
@Override
public void test() throws Exception {
// TODO Auto-generated method stub
}
}
abstract class Father {
public abstract void test() ;
}
4.当父类方法抛出异常,子类覆盖的方法可以不抛出异常
package com.ray.ch10;
public class Test extends Father {
@Override
public void test() {
// TODO Auto-generated method stub
}
}
abstract class Father {
public abstract void test() throws Exception;
}
总结:我们这一章节简单的汇总了一下使用异常的限制,这个一般编译器都会提示,因此这个知识点到不难解决。
这一章节就到这里,谢谢。
-----------------------------------
目录
分享到:
相关推荐
在Java开发中,这样的库可以极大地提高开发效率,因为它封装了常见的功能,开发者可以直接使用,而无需从头编写代码。 描述中的 "mchange-commons-java-0.2.11.jar包" 是该库的主要组成部分,是一个Java归档(JAR)...
Eclipse IDE for Java Developers 是一款广泛使用的集成开发环境(IDE),专为Java编程设计。它由Eclipse基金会维护,提供了一整套工具,用于编写、调试、测试和部署Java应用程序。2021-12-R 版本是Eclipse的一个...
标题中的“api-ntrip-java-client-master.zip”是一个包含Java实现的NTRIP客户端的源代码压缩包,专门针对Android平台。NTRIP(Networked Transport of RTCM via Internet Protocol)是一种用于实时传输GPS(全球...
标题 "aip-java-sdk-4.2.0" 指的是一个针对Android平台的AIP(Artificial Intelligence Platform)SDK的特定版本,版本号为4.2.0。这个SDK是百度公司提供的,用于帮助开发者在Android应用程序中集成和使用百度的各种...
【标题】"Aspose.Words for Java 23.6 with JDK 17 Support" Aspose.Words 是一个强大的文档处理库,专为Java开发者设计,用于创建、操作和转换各种文档格式。版本23.6是这个库的一个重要更新,它引入了对Java ...
1. **Java编程语言**:微服务通常使用Java作为主要开发语言,因为Java具有跨平台性、稳定性和强大的库支持。 2. **Spring Boot**:许多微服务框架如Spring Boot依赖于Java,Spring Boot简化了创建独立的、生产级别的...
在Java编程中,多文件...通过这个"java-多文件上传dome"工具包,你可以快速实现上述功能,无需从头编写所有代码。不过,记得在实际项目中,除了功能实现,还要关注性能、安全性和可维护性,确保应用程序的稳定运行。
Java Swing是Java GUI(图形用户界面)开发的一个重要组件,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。Swing提供了丰富的组件库,允许开发者创建美观且功能丰富的交互式用户界面。在这个...
Java是一种广泛使用的面向对象的编程语言,其特点包括抽象、继承、封装和多态性。在Java笔试中,这些概念经常被考察。 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化的过程,分为过程抽象(方法)和...
使用这个库,开发者可以避免从头实现模糊算法,而是直接调用库中的函数,减少工作量,提高效率。在实际应用中,这种模糊视图背景常用于对话框、弹出窗口或者浮动视图,以提供更好的视觉层次感和用户体验。 总结来说...
Java SDK是许多软件开发中的重要组成部分,特别是在与服务器端交互时...通过学习和使用这个SDK,开发者可以迅速在自己的应用中实现稳定、可靠的即时通信功能,而无需从头构建整个通讯系统,大大节省了开发时间和资源。
不过,为了遵循许可协议,应仔细阅读`license.rtf`文件,了解使用限制和条件,比如可能存在的分发限制、商标使用规定等。 **示例代码和资源** 在`samples`目录下,通常会包含一系列示例代码,展示如何使用库的各种...
【标题】:“curso-java-pildorasInf:从头开始学习Java” 这门“从头开始学习Java”的课程,源自"PillsInformática"的教育资源,旨在为初学者提供全面的Java编程知识。Java是一种广泛使用的面向对象的编程语言,由...
在Java编程中,库(Library)是预先编写好的代码集合,程序员可以导入并直接使用,无需从头开始编写所有功能。这些库通常以JAR(Java Archive)文件的形式存在,里面封装了类和方法,可供应用程序调用。Java库广泛...
Java平台提供了一系列库来支持这些操作,本项目中涉及的主要有Spire.Doc、Spire.PDF以及Apache PDFBox。让我们详细探讨这些库的功能及其在Java开发中的应用。 首先,`Spire.Doc.jar`是Spire.Doc for Java的库文件,...
【标题】"ks-java-lib:包含 Java 的 KS 库" 提供的是一个专门为 Java 开发者设计的库,它扩展了 Java 的功能,为开发者在处理特定任务时提供了便利。这个库可能包含了丰富的类和方法,旨在简化开发过程,提高代码的...
10. **版本控制**:项目通常会使用Git进行版本控制,文件名“java-bot-main”可能表示这是项目的主要代码分支或入口点。 通过深入研究“java-bot”项目,我们可以学习到JavaScript的实用技巧,以及如何构建一个功能...
Java桌面工具包(Java Desktop Toolkit)是Genesys公司为开发者提供的一套用于构建桌面应用程序,特别是软电话应用的框架。Genesys是一家专注于联络中心解决方案的领先供应商,其产品广泛应用于客户服务和企业通信...