简单实现
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(保证参数的一致性)
- 匿名内部类的初始化可以通过代码块来实现。