MakeCar.java
package edu.hhxy; /* * 组装车 */ public abstract class MakeCar { //组装车头 public abstract void makeHead(); //组装车身 public abstract void makeBody(); //组装车尾 public abstract void makeTail(); public void make() { this.makeHead(); this.makeBody(); this.makeTail(); } }
MakeBus.java
package edu.hhxy; public class MakeBus extends MakeCar { public void makeBody() { System.out.println("bus:组装车身"); } public void makeHead() { System.out.println("bus:组装车头"); } public void makeTail() { System.out.println("bus:组装车尾"); } }
MakeJeep.java
package edu.hhxy; public class MakeJeep extends MakeCar { public void makeBody() { System.out.println("jeep:组装车身"); } public void makeHead() { System.out.println("jeep:组装车头"); } public void makeTail() { System.out.println("jeep:组装车尾"); } }
MakeKa.java
package edu.hhxy; public class MakeKa extends MakeCar { public void makeBody() { System.out.println("ka:组装车身"); } public void makeHead() { System.out.println("ka:组装车头"); } public void makeTail() { System.out.println("ka:组装车尾"); } }
MainClass.java
package edu.hhxy; public class MainClass { public static void main(String[] args) { MakeCar bus = new MakeBus(); // bus.makeHead(); // bus.makeBody(); // bus.makeTail(); bus.make(); System.out.println("-------------------"); MakeCar jeep = new MakeJeep(); // jeep.makeHead(); // jeep.makeBody(); // jeep.makeTail(); jeep.make(); System.out.println("-------------------"); MakeCar ka = new MakeKa(); ka.make(); } }
以下采用Spring配置方式
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" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="makeBus" class="edu.hhxy.MakeBus" /> <bean id="makeJeep" class="edu.hhxy.MakeJeep" /> <bean id="makeKa" class="edu.hhxy.MakeKa" /> </beans>
采用junit进行测试(MakeCarClassTest)(通过接口接收getBean,接收的bean可以是接口的实现类,需要哪个实现类,就get哪个实现类,低耦合)
package edu.hhxy; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MakeCarClassTest { @Test public void getCar() { ApplicationContext ctx = new ClassPathXmlApplicationContext( "applicationContext.xml"); MakeCar makeCar = (MakeCar) ctx.getBean("makeBus"); System.out.println(makeCar); } }