您的位置:首页 > 编程语言 > Java开发

spring的继承使用<六>

2015-12-04 23:48 639 查看
问题?spring的继承使用

定义:关于类与类之间继承,子类使用父类方法及属性的方法

关于继承

1、如果一个类在spring配置文件中,但是不想让整个类创建对象,则用abstract="true"

2、如果让一个子类拥有父类的属性,则parent="commonDao"

案例:

父类:

package cn.itcast.sh.spring.di_extends;

public class CommenDao {
public String a;

public void A(){
System.out.println("得到dao层的A方法 了!");
}
public void B(){
System.out.println("得到Dao层的B方法了!");
}

public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}

}


子类:

package cn.itcast.sh.spring.di_extends;

public class PersonDao extends CommenDao {
}


applicationContext.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
<bean id="commenDao" class="cn.itcast.sh.spring.di_extends.CommenDao" abstract="true">
<property name="a" value="父类的值:"></property>
</bean>
<bean id="personDao" class="cn.itcast.sh.spring.di_extends.PersonDao" parent="commenDao"></bean>
</beans>


测试类:

package cn.itcast.sh.spring.ioc.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itcast.sh.spring.di_extends.CommenDao;
import cn.itcast.sh.spring.di_extends.PersonDao;

public class ExtendsTest {
@Test
public void A(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
//		CommenDao commenDao = (CommenDao)applicationContext.getBean("commenDao");
//		commenDao.A();
PersonDao personDao = (PersonDao)applicationContext.getBean("personDao");
personDao.A();
System.out.println(personDao.a);
}
}


正确结果:



如果在配置文件中没有设置parsent=“”,将不会得到设置的属性值



还有一个错误,如果没有设置父类为抽象类,这里设置了abstract属性(防止父类产生对象,只准子类使用父类),及会产生如下错误:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: