匿名内部类
定义:匿名内部类其实就是没有名称的内部类。
说明:在调用包含有接口类型参数的方法时,通常为了简化代码,可以直接通过匿名内部类的形式传入一个接口参数类型,在匿名内部类中直接完成方法的实现。
类:
public abstract class Animal {
public abstract void eat();
}
/*
匿名内部类的前提:必须是类或者接口
格式:
new 类名/接口名(){
重写抽象方法
}
*/
public class Test01 {
public static void main(String[] args) {
//方法一:整体等效Animal父类的子类对象
/*new Animal(){
@Override
public void eat() {
System.out.println("狗吃肉");
}
}.eat();*/
//方法二
String name = "哈士奇";
Animal dog = new Animal() {
@Override
public void eat() {
System.out.println(name + "在吃肉");
}
};
dog.eat();
}
}
接口:
public interface Inter {
public abstract void method();
}
public class Test02 {
public static void main(String[] args) {
//方法一
/*new Inter(){
@Override
public void method() {
System.out.println("我是重写后的method方法");
}
}.method();*/
//方法二
function(
new Inter() {
@Override
public void method() {
System.out.println("我是重写后的method方法");
}
}
);
}
public static void function(Inter i) {
i.method();
}
}