applicationContext.getBean()实现多个类继承抽象类实现调用请举例
时间: 2024-09-12 21:03:41 浏览: 67
`applicationContext.getBean()`方法在Spring框架中是一个常用的功能,它用于从配置的ApplicationContext中获取一个Bean实例。当你需要通过抽象类来管理一组相关的子类时,可以利用这个方法。假设你有一个抽象类`Animal`,然后有两个实现了它的子类`Dog`和`Cat`:
```java
// 定义抽象类 Animal 和它的接口
public abstract class Animal {
public abstract void makeSound();
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("汪汪");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("喵喵");
}
}
// 在Spring配置文件中注册这两个类
<bean id="dog" class="com.example.Dog"/>
<bean id="cat" class="com.example.Cat"/>
// 使用 applicationContext.getBean() 获取并调用抽象方法
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Animal dogInstance = (Animal) context.getBean("dog");
Animal catInstance = (Animal) context.getBean("cat");
dogInstance.makeSound(); // 输出 "汪汪"
catInstance.makeSound(); // 输出 "喵喵"
```
在这个例子中,`applicationContext.getBean("dog")`会返回一个`Dog`类型的实例,`makeSound()`会被调用并打印出"汪汪";同样,`applicationContext.getBean("cat")`返回的是`Cat`类型的实例,`makeSound()`则会打印出"喵喵"。
阅读全文