覆盖Java中没有子类化的方法

jou*_*jou 9 java overriding

我最近开始了一个新项目,第一次看到了如下所示的覆盖使用情况.

public class SomeClass {
  public void myMethod() {
    XStream xstream = new XStream() {
            @Override
            protected MapperWrapper wrapMapper(MapperWrapper next) {
                return new MapperWrapper(next) {
 // the rest ommitted
Run Code Online (Sandbox Code Playgroud)

基本上,它覆盖了thinkworks xstream api中XStream类的wrapMapper()方法,但没有让SomeClass扩展XStream类.我和Java一起工作了很多年,但这是我第一次看到这样的压倒一切.有人可以解释它的内外情况吗?谢谢.

小智 2

在这种情况下,XStream 类是一个匿名内部类。然后您将重写匿名 XStream 类的方法。