对java中的接口和实现类的深入理解

来源:互联网 发布:卸载软件下载大全 编辑:程序博客网 时间:2024/05/06 06:08

由DBhandle总结::


首先自己先创建自己的接口行为:


package cn.nentouch.interfacehandle;public interface interfacerun {//定义接口的行为public void run();}
2:定义自己的实现类

package cn.nentouch.interfacehandle;public class ManRun implements interfacerun {@Overridepublic void run() {System.out.println("男人再跑");}}

package cn.nentouch.interfacehandle;public class FamleRun implements interfacerun {//不同的实现类@Overridepublic void run() {System.out.println("女人再跑");}}


第三步:创建一个提供访问接口的一个creator制造者类。(和添加初始化参数的观察者接口)



package cn.nentouch.interfacehandle;import java.util.HashMap;import java.util.Map;import cn.touch.params.InitParams;public class RunCreator implements InitParams{private static Map<runTypes, Map<String, String>> runClassPath = new HashMap<runTypes, Map<String, String>>();private static  RunCreator creator=null;private static runTypes runtype=null;//提供获得实际类的方法public  interfacerun getinterfacerun() throws ClassNotFoundException{return getinterfacerun(runtype);} private interfacerun getinterfacerun(runTypes runtype2) throws ClassNotFoundException { //首先判断传入的参数: try {return  (interfacerun) Class.forName(runClassPath.get(runtype2).get("runhandle")).newInstance(); } catch (InstantiationException | IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}//构造函数:private 修饰只能本类中new对象 private RunCreator(){       //第一步首先添加初始化参数  loadinitparams();  }//创建对象public static RunCreator  getruncreatorstance(){if(creator==null){creator=new RunCreator();}       return creator;}//加载初始化参数@Overridepublic void loadinitparams() {//初始化参数的主要作用就是将其实现类的全类名放在map中:String basepath="sn.nentouch.interfacehandle.";Map<String,String> manrun=new HashMap<String,String>();manrun.put("runhandle",basepath+"ManRun");Map<String,String> famalerun=new HashMap<String,String>();famalerun.put("runhandle",basepath+"FamleRun");runClassPath.put(runTypes.man,manrun);runClassPath.put(runTypes.femal,famalerun);//最后将想要的类型提前声明          runtype=runTypes.man;}}
//测试类public class RunTest {public static void main(String[] args) throws ClassNotFoundException {RunCreator creator=RunCreator.getruncreatorstance();             //创建实例       interfacerun run= creator.getinterfacerun();       run.run();}


输出结果:原因
     runtype=runTypes.man;设置的枚举类型是男人,得到男人的实例,所以男人再跑

男人再跑






0 0
原创粉丝点击