匿名内部类对象

发布时间 2023-03-30 22:09:18作者: 卡卡罗特kk

牢记:当一个方法传入一个接口类型的参数,那么这个方法在被调用的时候,必须传入一个: 实现了该接口的实现类的对象

点击查看代码
Interface Fly{
void fly();
}
// 调用useFly方法.
// 1. 直接写一个Fly接口的实现类.
            实现类 实 = new 实现类(); // 自己定义的实现类
            useFly(实)
// 2. 接口的引用指向实现类的对象.
            Fly fly = new 实现类();
            useFly(fly);
// 以上两种姿势都不太好. 接口当中最重要的一个内容就是抽象方法,所有的功能与逻辑都是写
            在抽象方法当中的,「实现类要进行重写抽象方法,定义自己的逻辑.」. 焦点就放在抽象方法上就行了.至于
            这个实现的类名称无所谓.
// 3. 这里要注意: new不是接口,是一个实现了Fly接口的实现类.
                    Fly fly = new Fly(){
                @Override
                public void fly(){
// 核心逻辑写在这里就行了.
                }
            };
			            useFly(fly);
// 4. 去掉了临时变量,直接将匿名内部类对象写在实参的位置.
            useFly(new Fly(){
                @Override
                public void fly(){
// 核心逻辑写在这里就行了.
                }
            });
        }
	public static void useFly (Fly fly){
	}
	}
// 方法的声明/定义.
// 参数的作用: 告诉这个方法的调用者,这里需要一个Fly类型的参数.必须是这个类型的