标题:子类的实现接口与子类的父类共同定义的一个方法,接口与父类的该方法抛出不 ...
只看楼主
Honor000
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-10-23
结帖率:0
已结贴  问题点数:10 回复次数:2 
子类的实现接口与子类的父类共同定义的一个方法,接口与父类的该方法抛出不同的异常时:那么子类的实现接口里的该方法就不能改变在子类的父类中的该方法的异常接口如何理解
InterfaceAndExceptionTest1.rar (1011 Bytes)

谢谢大家的帮助
public class InterfaceAndExceptionTest1 extends Father implements Jiekou{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*子类的实现接口与子类的父类共同定义的一个方法,接口与父类的该方法抛出不同的异常时:那么子类的实现接口里的该方法就不能
         * 改变在子类的父类中的该方法的异常接口
         * 如何理解?
         * */

    }
    public void method1(){//既不能声明父类中该方法已经声明的异常,有不能声明接口中该方法声明的异常,也不能同时声明所有异常
                         //只能什么异常都不能声明,这是什么意思?这就叫做“子类的实现接口里的该方法就不能改变在子类的父类
                         //中该方法的异常接口”?无法理解!!
        try{
            throw new Yingchang2Exception();
        }catch(Yingchang2Exception e){
            
        }
    }
   
}
interface Jiekou{
    public abstract void method1() throws Yingchang1Exception;//Father类的method1方法与接口类的抽象方法method1同名
}
class Father{
    void method1() throws Yingchang2Exception{//Father类的method1方法与接口类的抽象方法method1同名
        
    }
}
class Yingchang1Exception extends Exception{
   
}
class Yingchang2Exception extends Exception{
   
}
搜索更多相关主题的帖子: method public 接口 如何 
2017-05-01 12:25
凌风zx
Rank: 8Rank: 8
来 自:万灵娱乐城
等 级:蝙蝠侠
威 望:7
帖 子:88
专家分:790
注 册:2015-4-11
得分:10 
我觉得应该是这样的:
    method1这个方法属于重写(虽然在接口而言叫实现,但本质是一样的),java规定重写的方法的异常不能大于父类,Yingchang1Exception、Yingchang2Exception 这两个异常不存在上下级关系,所以不管抛出哪一个都违反java规定。
    可以让Yingchang2Exception 继承Yingchang1Exception,或者Yingchang1Exception 继承Yingchang2Exception,然后method1就可以抛出子异常了。  

初出茅庐
2017-05-06 10:38
Honor000
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-10-23
得分:0 
回复 2楼 凌风zx
好的,懂了。谢谢你了
2017-05-22 22:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476575-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016107 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved