对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
- 对java中的接口和实现类的深入理解
- 对java 接口和实现的理解
- JAVA中的接口和抽象类深入理解
- 深入理解Java中的抽象类和接口
- java 深入理解Java的接口和抽象类
- java 深入理解Java的接口和抽象类
- java:深入理解Java的接口和抽象类
- Java基础:深入理解Java的接口和抽象类
- 深入理解Java的接口类和抽象类
- 我对Java中的封装,继承,抽象类和接口的理解。
- 深入理解Java的接口和抽象类
- 深入理解Java的接口和抽象类
- 深入理解Java的接口和抽象类
- 深入理解Java的接口和抽象类
- 深入理解Java的接口和抽象类
- 深入理解Java的接口和抽象类
- 深入理解Java的接口和抽象类
- 深入理解Java的接口和抽象类
- 关于Samba的SELiunx配置
- 加密
- Android应用使用Multidex突破64K方法数限制
- iOS应用真机调试/证书配置/打包/发布国际化
- 接口电平标准
- 对java中的接口和实现类的深入理解
- 杨辉三角
- 循环中的推进
- android内存泄漏
- ios搜索框功能的实现/UISearchBar/UISearchController的使用
- POJ 2774(后缀数组的应用)
- 【错误反思】 android.content.res.Resources$NotFoundException
- 二维数组作为形参
- ns 2.35 安装 TKN 802.11e