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

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
异常的注意事项:
1,子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的子类。
2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。
简单说:子类覆盖父类,只能抛出父类的异常或者子类或者子集。
 
注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛。子类不能抛出比父类多的异常。就只能try。。。catch
*/
class  extends  Exception{
      A(String msg){
         super (msg);
      }
}
 
class  extends  A{
     B(String msg){
         super (msg);
      }
}
 
class  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( "处理完异常!" );
          }
      }
}

  










本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/3872781.html,如需转载请自行联系原作者
目录
相关文章
|
6天前
|
Java
Java中的继承和多态是什么?请举例说明。
Java中,继承让子类继承父类属性和方法,如`class Child extends Parent`,子类可重写父类方法。多态允许父类引用指向子类对象,如`Animal a = new Dog()`,调用`a.makeSound()`会根据实际对象类型动态绑定相应实现,增强了代码灵活性和可扩展性。
8 0
|
13天前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
13 3
|
27天前
|
Java
【Java】一个简单的接口例子(帮助理解接口+多态)
【Java】一个简单的接口例子(帮助理解接口+多态)
16 0
C4.
|
1月前
|
Java
Java多态
Java多态
C4.
9 0
|
28天前
|
SQL Java
java中的异常
java中的异常
9 1
|
28天前
|
Java
java中的多态
java中的多态
8 2
|
28天前
|
Java 程序员 编译器
Java中异常
Java中异常
12 0
|
28天前
|
Java 程序员 编译器
Java中的异常
Java中的异常
9 0
|
28天前
|
Java
Java异常的抛出
Java异常的抛出
8 0
|
1月前
|
Java 索引
JAVA异常类及其主要方法
JAVA异常类及其主要方法
28 3