public interface Animal {
void makeSound();
}
public class Dog implements Animal {
@Override
public void makeSound() {
System.out.println("Woof!");
}
}
public class Cat implements Animal {
@Override
public void makeSound() {
System.out.println("Meow!");
}
}
public class AnimalCare {
// 接口作为入参
public void takeCare(Animal animal) {
animal.makeSound(); // 调用Animal接口的makeSound方法
}
// 接口作为出参
public Animal getAnimal(String type) {
if ("dog".equals(type)) {
return new Dog(); // 返回Dog对象,它实现了Animal接口
} else if ("cat".equals(type)) {
return new Cat(); // 返回Cat对象,它实现了Animal接口
}
return null;
}
}
public class Main {
public static void main(String[] args) {
AnimalCare animalCare = new AnimalCare();
// 使用接口作为出参获取Animal对象
Animal dog = animalCare.getAnimal("dog");
Animal cat = animalCare.getAnimal("cat");
// 使用接口作为入参传递Animal对象
animalCare.takeCare(dog); // 输出: Woof!
animalCare.takeCare(cat); // 输出: Meow!
}
}
例子中,Animal 是一个接口,它定义了一个方法 makeSound()。Dog 和 Cat 类分别实现了 Animal 接口,并提供了 makeSound() 方法的具体实现。
AnimalCare 类有两个方法:takeCare() 和 getAnimal()。takeCare() 方法接受一个 Animal 类型的参数,意味着它可以接受任何实现了 Animal 接口的对象。getAnimal() 方法返回一个 Animal 类型的对象,意味着它可以返回任何实现了 Animal 接口的对象的实例。
在 Main 类的 main 方法中,通过 getAnimal() 方法获取 Animal 类型的对象,并将这些对象作为参数传递给 takeCare() 方法。展示了接口如何作为方法的入参和出参,提供了灵活性和解耦合的代码设计。
文章介绍了Java中的Animal接口及其实现(Dog和Cat类),展示了如何通过AnimalCare类的takeCare方法接收并调用接口方法,以及getAnimal方法返回不同类型的接口实例。接口在方法入参和出参中的应用体现了灵活性和解耦设计。

被折叠的 条评论
为什么被折叠?



