1
public class A extends Exception {....}
public class B extends A {....}
public class C extends RuntimeException {....}
给定方法签名A bar(B q)抛出C,下列哪个不会编译?给定方法签名A bar(B q)抛出C,下列哪个不会编译?
A.
A m() throws C {
return bar(new B());
}
B.
m() {
return bar(new B());
}
C.所有上述将编译。
答案是C.有可能与B中的错字,不知道。 我不理解这个问题,在概念上,它是什么问,等等。 我得到A是B的超类,而C单独作为RuntimeException,所以它不在编译时检查?
而我得到的方法里面必须是一个B时间的例外,它在两个答案都有效。 有人可以帮忙解释为什么这两个编译?
为什么*他们不会*编译?你能解释一下你认为的矛盾吗? –
我真的不明白B.答案是怎么回事。它不会抛出C方法签名。在m()前面有一个答案,而不是另一个答案。我不明白这些问题/答案选项的格式,以解释有关其功能的任何信息。 – sumitz1212
由于方法签名中没有返回类型,B应该失败。 – Eranda