java中异常注意问题(发生在多态是的异常问题)

/*
异常的注意事项:
1,子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的子类。
2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。
简单说:子类覆盖父类,只能抛出父类的异常或者子类或者子集。

注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛。子类不能抛出比父类多的异常。就只能try。。。catch
*/
class A extends Exception{
     A(String msg){
	    super(msg);
	 }
}

class B extends A{
    B(String msg){
	    super(msg);
	 }
}

class C extends Exception{
     C(String msg){
	    super(msg);
	 }
}

/*
Exception
     ---A
	    ---B
	 ---C
*/

class Parent{
    void show() throws A{
	    throw new A("抛出A异常!");
	}
}

class Child extends Parent{
     void show() throws B{
	     throw new B("抛出B异常!");
	 }
}

public class PC{
     public static void main(String[] args){
	     new PC().methods(new Parent());
	 }

	 static void methods(Parent p){//如果参数是Parent 的子类,也就是多态时,子类中抛出了父类没有的异常类型,
	                               //下面的代码那就不能被处理了!
	     try{
		    p.show();
		 }catch(A e){
		    System.out.println("处理完异常!");
		 }
	 }
}

  

java中异常注意问题(发生在多态是的异常问题)

时间: 2024-10-11 13:33:50

java中异常注意问题(发生在多态是的异常问题)的相关文章

Java中的继承、封装、多态的理解

Java中的继承.封装.多态 继承的理解: 1.继承是面向对象的三大特征之一,也是实现代码复用的重要手段.Java的继承具有单继承的特点,每个子类只有一个直接父类. 2.Java的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类(有的也称其为基类.超类),父类和子类的关系,是一种一般和特殊的关系.就像是水果和苹果的关系,苹果继承了水果,苹果是水果的子类,水果是苹果的父类,则苹果是一种特殊的水果. 3.Java使用extends作为继承的关键字,extends关键字在

Java中的继承、封装、多态

继承 所谓封装,就是将对象的成员变量和成员函数包装和隐藏起来,对外界通过特定的接口来访问. public class User { private String name; public User (String name) { this.name = name; } public String getName () { return this.name; } public void sayName () { System.out.println(this.getName()); } publi

java中的覆盖,重载和多态

今天来介绍java中的三大强功能覆盖,重载和多态. 方法覆盖:当一个子类继承了一个父类时,它也同时继承了父类的属性和方法,可以直接使用父类的属性和方法,或者,如果父类的方法不能满足子类的需求,则可以在子类中对父类的方法进行"改造"即覆盖.在覆盖的过程中,需要提供和父类中的被覆盖方法相同的方法名称,输入参数以及返回类型.另外,在子类对父类的方法进行覆盖的过程中,不能使用比父类中的被覆盖方法更严格的访问权限,例如父类中方法的修饰符为public,则子类的覆盖方法不能用protected,d

java中最常见的几种运行时异常,你get了吗?

NullPointerException (空指针异常) ClassCastException (类型强制转换异常) NumberFormatException (数字格式异常) NegativeArraySizeException (数组大小为负数异常) SecurityException (安全异常) BufferOverFlowException (缓冲区溢出异常) IndexOutofBoundsException (下标越界异常) 原文地址:https://www.cnblogs.co

Java中的重载、重写、多态,静态绑定、动态绑定

重载,英文名是overload,是指在一个类中定义了一个以上具有相同名称的方法,这些方法的参数个数.参数类型和顺序不能相同.返回类型可以相同,也可以不同. public class TstaticOverload { static int height; TstaticOverload() { System.out.println ("Planting a seedling"); height = 0; } TstaticOverload(int initialHeight) { he

Java中关于继承、类、多态、接口的知识点

继承 含义:在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类 优点:1)代码的重用性:2)子类扩展父类的属性和方法:3)父类的属性和方法可用于子类:4)设计应用程序变得更加简单 继承的实现: 关键字extends:继承其ted他类,可以继承public,protected public class Salary extends Employee super关键字: 作用:调用父类中重写的方法 注意:调父类构造器是第一句可执行语句:默认情况下子类会调用父类的无参

夯实Java基础系列10:深入理解Java中的异常体系

目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调用链 自定义异常 异常的注意事项 当finally遇上return JAVA异常常见面试题 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 - Java异常 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.c

深入Java核心 Java中多态的实现机制(1)

多态性是Java面向对象的一个重要机制,本文将向您详细介绍Java语言中多态性的实现原理和方法,通过多态一点带出更多Java面向对象有趣而实用的知识. 多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性.在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度:今天我们再次深入Java核心,一起学习Java中多态性的实现. “polymorphism(多态)”一词来自希腊语,意为“多种形式”.多数Java程序员把多态看

java中实现多态的机制是什么?

多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性.在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度:今天我们再次深入Java核心,一起学习Java中多态性的实现. “polymorphism(多态)”一词来自希腊语,意为“多种形式”.多数Java程序员把多态看作对象的一种能力,使其能调用正确的方法版本.尽管如此,这种面向实现的观点导致了多态的神奇功能,胜于仅仅把多态看成纯粹的概念. Java中的多态总是子类型