匿名内部类
作用:建少代码沉淀
基本抽象类的匿名内部类
abstract class Person {
public abstract void eat();
public void sleep() {
System.out.println("睡觉");
}
}
public class Demo1 {
public static void main(String[] args) {
//直接实例化抽象类,然后顺带着实现抽象方法
Person person1 = new Person(){
@Override
public void eat() {
System.out.println("吃蛋");
}
@Override
public void sleep() {
System.out.println("打呼噜");
}
};
person1.eat();
person1.sleep();
}
}
基于接口的匿名内部类
interface A {
void test();
}
public class Demo3 {
public static void main(String[] args) {
A a = new A() {
@Override
public void test() {
System.out.println("测试A");
}
};
a.test();
}
}
匿名对象
interface B {
void eat();
}
public class Demo5 {
public static void main(String[] args) {
//如果方法的参数是一个接口,以后可以不用实现类,直接方法中 new 接口即可
//但是new接口的时候,需要将接口的方法实现掉
test(new B() {
@Override
public void eat() {
System.out.println("吃饭");
}
});
}
public static void test (B b) {
b.eat();
}
}