class J_SuperClass
{
public void mb_method(int i)
{
}
}
public class J_Test extends J_SuperClass
{
//选项方法插入位置
public static void main(String args【】)
{
}
}
(A)void mb_method(int i) throws Exception{}
(B)void mb_method(long i) throws Exception{}
(C)void mb_method(long i) {}(D)public void mb_method(int i) throws Exception{}
请高手解释一下怎么做这题
{
public void mb_method(int i)
{
}
}
public class J_Test extends J_SuperClass
{
//选项方法插入位置
public static void main(String args【】)
{
}
}
(A)void mb_method(int i) throws Exception{}
(B)void mb_method(long i) throws Exception{}
(C)void mb_method(long i) {}(D)public void mb_method(int i) throws Exception{}
请高手解释一下怎么做这题
J_Test继承自J_SuperClass,话说子类不能抛出比父类更多的异常.那么(A)(B)(D)就都不能选.(C)又明显地参数类型不一样.不知道我的想法有没有问题.还是对题本身的理解有问题?
1、可访问性不能比父类方法小
2、抛的异常不能比父类方法大(父类方法不声明抛异常,子类不能声明抛checked异常,但可以声明抛出RuntimeException或者它的子类;父类声明抛checked异常,子类可以不声明抛异常,也可以声明抛出与父类一样的异常或者是他的子类,或者是RuntimeException以及它的子类)
排除A、D
剩下的B、C都是对的,重载了mb_method而已,不是重写
可访问性变小了,排除~~另外父类方法不声明抛checked异常,所以子类重写的方法只能声明抛unchecked Exception,也可以排除
(D)抛异常,理由同上,你可以试着让它抛出RuntimeException就可以了,可以看看Java Tutorial有关异常 处理的内容