当子类之间没有通用实现时,我总是使用接口。但是,JAXB中内置的XmlAdapter
是抽象类,而ALL的方法是抽象的,为什么它不是抽象类的接口呢?应该有一个原因。
XmlAdapter
定义了两个抽象方法,但也定义了一个默认的无参数保护构造函数。
[Unmarshaller
s和Marshaller
s使用此默认构造函数创建XmlAdapter
的实例(除非setAdapter
提供了实例)。
如果XmlAdapter
是接口,则Unmarshaller
和Marshaller
必须检查指定的类是否提供了无arg构造函数。