java之匿名内部类

Person.java

package insof;

public class Person extends Object{
    String name;
    static int age;
    public Person() {
        this.name = "tom";
        System.out.println("执行的是构造方法");
    }
    public void test(){
        System.out.println("Person的test方法");
}

Main.java

package insof;

public class Main {
    
    public static void main(String[] args) {
        //匿名内部类,为Person的子类
        //该类没有类名,不能显示的调用new方法来创建对象,想要初始化属性可以用代码块
        
        Person p = new Person() {
            {
                super.name = "jack";
            }
            @Override
            public void test() {
                System.out.println("匿名子类");
            }
        };
        System.out.println(p.name);
        p.test();
    }
}

输出:

执行的是构造方法
jack
匿名子类

原文地址:https://www.cnblogs.com/xiximayou/p/12054529.html