在查看jdk源码的过程中,我们会经常看到如下形式的代码:
通过分析我们可以知道这是一种overrides的一种实现方式。
测试代码如下:
package com.ykp.test;
public class A {
public void printName() {
System.err.println("printName");
}
}
package com.ykp.test;
public class B {
public static void main(String[] args) {
A a1 = new A() {
@Override
public void printName() {
System.err.println("this is new printName!");
}
};
a1.printName();//实际代用的是我们Override之后的方法
A a2 = new A();
a2.printName();//这里调用的还是原来的方法
}
}
Output in console:
this is new printName!
printName