面向对象Java:避免重复代码
我想重写一些类型为Exception
或RuntimeException
的个人异常的toString()
方法
假设我想为Exception
和RuntimeException
子类显示test
和toString()
方法。我只需要重写toString()
一次
因为Java不支持多重继承,我怎么做呢?我只是不想为这两种类型的异常编写2次toString()
方法
例如:
public class SubClassOfException extends Exception {
...
@Override
public String toString() {
return "test";
}
}
我的目标是创建SubClassOfRuntimeException
,并利用SubClassOfException
的自定义toString()
方法,因为RuntimeException
是Exception
的一个子类
有没有办法,或者我必须将toString()
代码复制到SubClassOfException
和SubClassOfRuntimeException
中
# 1 楼答案
由于
SubClassOfException
与RuntimeException
在同一级别上具有层次结构,因此不能通过继承共享toString()
方法但是,如果具体异常类型中的两个
toString()
方法都将实际的字符串生成委托给一个公共的“异常字符串生成器”,则也不需要复制代码。我是说在这两个异常类中