匿名内部类的简单使用

简单实现

public abstract class Son {
    public abstract int money();
}

public class Father {
    public void test(Son son){
        System.out.println("我要给son" + son.money() + "钱");
    }
    public static void main(String [] args){
        Father father = new Father();
        father.test(new Son() {
            @Override
            public int money() {
                return 1;
            }
        });
    }
}

注意事项

  • 必须继承或实现一个接口
  • 内部类为什么不能有static方法和属性 (内部类是非静态的,除了要依靠外部类实例,还要依赖内部类实例)
  • 匿名内部类中是不能定义构造函数的
  • 匿名内部类不能是抽象的
  • 使用的形参为何要为final(保证参数的一致性)
  • 匿名内部类的初始化可以通过代码块来实现。

你可能感兴趣的:(匿名内部类的简单使用)