java有两个类继承了相同父类,怎么分别注入
时间: 2024-09-10 08:10:35 浏览: 48
在Java中,如果你有两个类A和B都继承自同一个父类C,你需要通过构造函数传递、setter方法或者依赖注入框架(如Spring)来分别实例化和注入这两个子类。
1. **构造函数传递**:
- 创建C类的对象时,可以传入子类作为参数,例如:
```java
C object = new A() 或 C object = new B(); // 根据需要选择创建哪一种子类实例
```
2. **Setter方法**:
- 如果父类有一个setter方法接受子类类型的参数,可以在后期动态设置:
```java
C parentObj = new C();
if (condition) {
parentObj.setSubClass(new A());
} else {
parentObj.setSubClass(new B());
}
```
3. **依赖注入框架**:
- 使用Spring等框架时,可以在配置文件中定义A和B的bean,并在需要的地方通过@Autowired注解自动装配:
```xml
<bean id="parentBean" class="C">
<property name="subClass">
<bean class="A"/>
</property>
</bean>
<bean id="parentBean2" class="C">
<property name="subClass">
<bean class="B"/>
</property>
</bean>
```
程序运行时,根据实际需求来装配对应的子类。
阅读全文