通过匿名内部类overrides

在查看jdk源码的过程中,我们会经常看到如下形式的代码:

通过匿名内部类overrides_第1张图片

通过分析我们可以知道这是一种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

你可能感兴趣的:(Java)