继承要遵循is a原则,就是子类 is a 父类.拿Exception举例子, Exception | ---------------- | | RuntimeException YourException RuntimeException一定是一个异常,所以如果出了RuntimeException,Exception肯定可以捕获到, 而YourException和RuntimeException则是兄弟关系,他两个没有任何继承关系,所有RuntimeException is not a YourException.
有些直接就是语言的规定。比如,你如果从String类派生一个类做为异常使用的话,程序编译都通不过。
实际上,所以被抛出的东西,都必需实现Throwable。
Exception
|
----------------
| |
RuntimeException YourException
RuntimeException一定是一个异常,所以如果出了RuntimeException,Exception肯定可以捕获到,
而YourException和RuntimeException则是兄弟关系,他两个没有任何继承关系,所有RuntimeException
is not a YourException.