黑马程序员技术交流社区

标题: 异常问题 [打印本页]

作者: 马雨铎    时间: 2011-7-29 12:30
标题: 异常问题
代码1:
import java.io.*;
class Fu
{
    public void myVoid() throws IOException
    {
         System.out.println("父类");
    }
}
public class LianXil extends Fu
{
    public void myVoid() throws Exception
    {
         System.out.println("子类");
    }
    public static void main(String args[])
    {
    }
}
代码2:
import java.io.*;
class Fu
{
    public void myVoid() throws IOException
    {
         System.out.println("父类");
    }
}
public class LianXil extends Fu
{
    public void myVoid(String s) throws Exception
    {
         System.out.println("子类");
    }
    public static void main(String args[])
    {
    }
}
代码1运行的时候出错,说是子类重写了父类的myVoid方法,父类抛出异常IOException而子类抛出异常Exception,是 违反重写规则。所以出错。
但是  代码2  我觉得跟代码1 应该是一样的啊,为什么代码2能正常运行?
作者: 匿名    时间: 2011-7-29 12:54
类抛出异常不能比父类类抛出异常小,所以代码1错了。
代码2跟代码不一样,楼主看错了,在代码2 中的myVoid(String s)方法有参数,并不是重写Fu类的myVoid()方法,所以没有报错,要重写最好的加上注解@Override,加上之后就你会看见错了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2