匿名内部类。就是内部类的简写格式(其实就是创建一个子类对象)——————包括对接口的继承以及实现两个功能
?
前提:内部类必须继承或者实现一个外部类或者接口
?
解释一下:
有一个接口
在一个类中有一个内部类,这个内部类想继承这个接口,可以这么写
或
为了简化方法可以这么写,因为是Inner继承Inter,当采用匿名对象写法时,就没有子类对象名称了,所以直接new父类,并在下面方法体中重写接口的方法。
一般把匿名对象类放在一个方法中,在主函数中直接调用这个方法即可
?
?
?
?
public class Main {
????public static void main(String[] args){
????????Main main = new Main();
????????main.test(new Man(){
????????????//这里传入一个Man接口的匿名实现类的实例
????????????public void talk(){
????????????????System.out.print("I‘m a man!");
????????????????//output I‘m a man!
????????????}
????????});
????}
?
?
????public void test(Man m){
????????//调用该方法需要传入一个Man类型参数
????????m.talk();
????}}
?
?
interface Man{
????void talk();}
?
举个栗子:在上述代码中,第四行调用Main对象的test方法,test方法的参数是接口类型的,但是在实际传参数的过程中需要对这个接口进行复写和实现,所以直接在第四行采用 new 接口名的方式对接口进行了复写,并生成了一个对象.(test方法的参数是一个接口,说明 实现了这个接口的类的对象都可以作为参数传进去)
原文:https://www.cnblogs.com/beeenwei/p/12553678.html