1)不能新产生Exception
abstract class AbstractClass{
void method(){}
}
abstract class AbstractClass{
void method(){}
}
解决方案 »
- ExecutorService 如何去调度邮件发送
- Java绘图问题请教
- jfreechar画的拆线图能定制颜色吗?~
- 菜鸟请教JAVA问题
- HelpMe 怎么把JTextField中文本写到JList中~~
- 高手请进!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 绘图时很奇怪覆盖现象,苦闷好久,求救!谢谢!
- 问一个简单的集合问题
- java中有关static使用的一个小问题,大家帮帮忙。
- 新手求教关于经典多线程模型“生产者/消费者”的问题
- swing或awt中的设置组件setsize方法的问题。奇怪啊
- new () 和instance()有什么区别?
一条总的原则,在更具体的Class中的方法不能产生超出上层Class(父类,或者Interface)中出现的Exception
这点应该不难理解。因为,否则会出现程序意想不到的异常而导致程序中断1)不能新产生Exceptionabstract class AbstractClass{
void method(){}
}
public class ImpClass extends AbstractClass{
void method() throws NewException{} //这是不允许的
}2)不能超出接口中的Exception
class ChildException extends ParentException{}
interface AnInterface{
void method() throws ParentException{}
}
public class ImpClass implements AnInterface{
void method() throws ChildException{}//这是允许的
//void method() throws ParentException{}//这也可以
//void method(){}//这也可以
//void method() throws FriendException{}//不允许
}
因为他们代表了一类编程中出现的错误,是编程者的设计不严谨造成的,比如数组下标越界
当然你也可以处理这类违例,因为Java已经假定任何时候都有可能发生这类违例
所以,自然,你在合适的地方加上这样的违例是允许的。4)这个是关于interface实现的问题,是说你必须实现interface中所有定义的方法,
必须保证方法名称和返回类型都和interface中声明的保持一致。
但是你不必要按照接口抛出异常,实际上你可以什么也不抛出。这一点在2)中已有说明
interface AnInterface{
void method() throws ParentException{}
}请问:chanceqw 接口中的方法可以定义吗?
不象在抽象类中。可以有方法定义,也可以有抽象方法不能定义,
当然抽象方法要加个 abstract 修饰一下!!!
interface AnInterface{
void method() throws ParentException;
}