匿名内部类
概念:
顾名思义,没有名字的内部类称之为匿名内部类。
作用:
1.匿名内部类可以继承其他类,但是不使用 extends 关键字。
2.匿名内部类可以实现接口,但是不使用 implements 关键字。
3.匿名内部类可以继承抽象类,但是不使用 extends 关键字。
普通类
public class Persion {
public void eat() {
}
}
接口
public interface IPersonServer {
public void work();
}
抽象类
public abstract class APersion {
public abstract void sing();
}
测试类
public class TestInnerClass {
public static void main(String[] args) {
/**
* 匿名内部类继承其他类
*/
Persion persion = new Persion() {
@Override
public void eat() {
System.out.println("TestInnerClass.main(...).new Persion() {...}.eat()");
}
};
persion.eat();
/**
* 匿名内部类实现接口
*/
IPersonServer iPersonServer = new IPersonServer() {
@Override
public void work() {
System.out.println("TestInnerClass.main(...).new IPersonServer() {...}.work()");
}
};
iPersonServer.work();
/**
* 匿名内部类继承抽象类 实现抽象方法
*/
APersion aPersion = new APersion() {
@Override
public void sing() {
System.out.println("TestInnerClass.main(...).new APersion() {...}.sing()");
}
};
aPersion.sing();
}
}
测试结果:
![](https://i-blog.csdnimg.cn/blog_migrate/40b0a692d9430a98cef1e2302a55320c.png)