今天回想了一下java重载时的异常,有些淡忘,所以翻开书重新阅读了一遍。
/**
* 异常的限制
* 方法重载时,子类的方法只能抛出父类方法中异常接口或者更少的异常
* 不能重新抛出新的异常
* 异常说明并不是方法类型的一部分,了解虚拟机的应该知道,异常是放在异常表中的
*/
package com.sunlong.java3;
import static java.lang.System.out;
class BaseballException extends Exception{}
class FoulException extends BaseballException{}
class StrikeException extends BaseballException{}
class PopFoulException extends FoulException{}
abstract class Inning{
/**
* 构造函数抛出异常
*/
public Inning() throws BaseballException{}
/**
* 此方法在Strom接口中抛出了另一个异常
* @throws BaseballException
*/
public void event() throws BaseballException{}
/**
*
* @throws FoulException
* @throws StrikeException
*/
public abstract void atBat() throws FoulException, StrikeException;
/**
* 抛出未检查异常
*/
public void walk(){}
}
class StromException extends Exception{}
class RainedOutException extends StromException{}
interface Strom{
void event() throws RainedOutException;
void rainHard() throws RainedOutException;
}
public class Test extends Inning implements Strom{
/**
* 构造器不受异常限制,意思是子类可以抛出别的异常,但
* 子类的构造函数异常说明必须包含父类的构造器说明
* 因为父类构造器总被明确或隐含调用
* @throws BaseballException
* @throws RainedOutException
*/
public Test() throws BaseballException, RainedOutException {
super();//此句明确或者隐含调用
}
public Test(String s) throws BaseballException, FoulException{
}
/**
* 父类方法并没有抛出任何异常
* 所以编译此方法出错
*/
// public void walk() throws PopFoulException{
//
// }
/**
* 子类方法抛出比父类此方法更少的异常,或者异常的子类
*/
public void atBat() throws PopFoulException {
}
/**
* 由于此方法类Inning与接口Strom中同时存在
* 那么Strom中的event方法就不能改变Inning中的event异常接口
* 同样Inning中的也不能改变Strom中的,所以最后只能是不抛出异常
*/
public void event(){
}
@Override
public void rainHard() throws RainedOutException {
}
/**
* 入口
* @param args
*/
public static void main(String[] args){
}
}
分享到:
相关推荐
《Thinking in Java》第四版由布鲁斯·埃克尔(Bruce Eckel)撰写,他是MindView公司的总裁。这本书被广泛认为是学习Java编程语言的经典教材之一。从读者的反馈来看,《Thinking in Java》不仅覆盖了Java的核心概念...
### Thinking in Java 读书笔记知识点总结 #### 一、万事万物皆对象 1. **对象存储位置** - **寄存器**:程序无法直接控制。 - **栈(Stack)**:存储基本类型数据和对象引用,但对象本身不在此处。 - **堆(Heap)...
根据提供的文件信息,以下是对文件《Thinking in Java 4th Edition Annotated Solutions Guide》中所包含知识点的详细解释: 首先,文件标题《Thinking in Java 4th Edition Annotated Solutions Guide》指出了这是...
《王者归来之Thinking in Java读书笔记》是对Bruce Eckel的经典之作《Thinking in Java》第四版的深度学习与总结。这本书是Java程序员的必备参考书,它深入浅出地阐述了Java语言的核心概念和技术,旨在帮助读者理解...
《Thinking in Java》是Bruce Eckel的经典之作,第四版(TIJ4)更是Java程序员必读的书籍之一。这本书深入浅出地介绍了Java语言的核心概念和技术,包括面向对象编程、集合框架、多线程、网络编程等众多主题。源码是...
研讨课 Hands-on Java研讨课CD Thinking in Objects研讨课 Thinking in Enterprise Java Thinking in Patterns(with Java) Thinking in Patterns研讨课 设计咨询与复审 附录B 资源 软件 编辑器与IDE 书籍 分析与设计...
《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地介绍了Java语言的核心概念和技术。这本书的练习题是学习Java的重要组成部分,因为它们能够帮助读者巩固理论知识并提升实践能力。以下是对"Thinking in ...
《Thinking in Java》是一本深度解析Java编程语言的经典著作,其深入浅出的讲解和丰富的实例使得读者能够全面理解Java的精髓。以下是对书中部分关键知识点的总结: 1. **Java 泛型**:泛型是Java SE 5.0引入的重要...
### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...
《Thinking in Java》是Bruce Eckel的经典之作,第四版涵盖了Java编程语言的广泛主题,适合初学者和有经验的程序员。这本书深入浅出地讲解了Java的核心概念和技术,旨在帮助读者建立坚实的编程基础,并理解面向对象...
Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...
《Thinking in Java》是一本备受推崇的Java编程教材,由Bruce Eckel撰写,被誉为Java学习者的必读之作。这本书深入浅出地介绍了Java语言的核心概念和技术,覆盖了从基础到高级的主题,对于有一定Java基础的读者来说...
《Thinking in Java》是Bruce Eckel的经典之作,被誉为学习Java编程的权威指南。该书以其深入浅出的方式,详尽地介绍了Java语言的核心概念和技术。第三版是此书的一个重要里程碑,它涵盖了Java语言的诸多关键特性,...
《Thinking in Java》是 Bruce Eckel 编著的一本经典的Java编程教材,它深受程序员喜爱,被誉为学习Java的必备参考书。这本书全面深入地探讨了Java语言的核心概念和技术,不仅适合初学者,也对有经验的程序员提供了...
《Thinking in Java》是Bruce Eckel的经典编程教材,它深入浅出地介绍了Java语言的核心概念和技术。这本书以其详尽的解释、丰富的示例和实践性强的习题深受程序员喜爱。"Thinking in Java 习题答案"是配套的解答集,...
《Thinking in Java》是Bruce Eckel的经典之作,第四版更是被广大Java开发者视为学习和进阶的重要参考书籍。这本书深入浅出地介绍了Java语言的核心概念和技术,包括面向对象编程、集合框架、多线程、网络编程、GUI...
《Thinking in Java》第二版是Bruce Eckel所著的一本权威性的Java编程教程,由MindView, Inc.出版。这本书受到了读者的高度评价,被认为是比其他Java书籍更出色的学习资源,其深度、完整性和精确性都是同类书籍中的...
《Thinking in Java》是Bruce Eckel的经典Java编程书籍,它深入浅出地讲解了Java语言的核心概念和技术。这本书不仅适合初学者,也对有经验的程序员提供了深入理解Java的宝贵资源。现在,我们有机会免费下载这本书的...
《Thinking in Java》的知识点覆盖广泛,包括基础语法、面向对象编程、集合框架、多线程、网络编程、异常处理、输入/输出等核心概念。解答指南通常会解析书中的实例和练习,帮助读者巩固这些知识,提高编程实践能力...