1.基于抽象类的匿名内部类
//定义一个抽象类
abstract class Animal{
public abstract void eat();
}
//之前再新建一个类去继承Animal,然后重写eat方法
//
public class Demo1 {
public static void main(String[] args) {
//现在直接可以这样来写
// Animal animal = new Animal() {//实例化抽象类的时候顺便把未实现的方法实现掉
// @Override
// public void eat() {
// // TODO Auto-generated method stub
// System.out.println("吃饭");
// }
// };
// animal.eat();
new Animal() {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("在吃饭");
}
}.eat();//匿名对象.方法();
}
//官方文档中关于匿名内部类说过英文的 减少代码的量
}
2.基于接口的匿名内部类
interface Pig {
public void eat();
}
//不用再单独写一个类去实现这个接口
public class Demo3 {
public static void main(String[] args) {
new Pig() {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("吃");
}
}.eat();
}
}
、