当前位置:网站首页>接口作为参数(接口回调)

接口作为参数(接口回调)

2022-07-07 05:20:00 寒_川

interface Animal {
    
    void eat();
}


@Slf4j
class Cat implements Animal {
    
    
    @Override
    public void eat() {
    
        log.debug("猫吃鱼");
    }
}

@Slf4j
class Dog implements Animal {
    
    @Override
    public void eat() {
    
        log.debug("狗吃肉");
    }
}

class AnimalTest {
    
	//接口作为参数
    public void AnimalEat(Animal animal) {
    
        animal.eat();
    }
}

实现

@Test
    public void interfaceCallbackTest(){
    
        Animal1 cat = new Cat(); //Cat类实现了Animal1,则Animal1指向Cat类的对象地址
        Animal2 dog = new Dog(); //Dog类实现了Animal2,则Animal2指向Dog类的对象地址
        AnimalTest animalTest = new AnimalTest();
        animalTest.AnimalEat(cat); // 实际上调用的是cat的eat()方法 输出猫吃鱼
        animalTest.AnimalEat(dog); // 实际上调用的是dog的eat()方法 输出狗吃肉
    }

Animal1 cat = new Cat(); 所谓的接口回调,即 哪个类实现了他,他就指向哪个类的对象地址
animalTest.AnimalEat(cat); 动物接口找到猫的对象地址,调用猫的吃东西方法

原网站

版权声明
本文为[寒_川]所创,转载请带上原文链接,感谢
https://blog.csdn.net/HolyLordHanChaun/article/details/125640082