Java Interface,反射
先看代码,
package reflect;
//Class Word
public class Word implements OfficeAble{
public static void main(String[] args){ }
public void start(){
System.out.println("word...start...");
}
public Word(){ }
} package reflect;
//Class Excel
public class Excel implements OfficeAble{
public static void main(String[] args){ }
public void start(){ }
public Excel(){ }
} package reflect;
//OfficeAble接口,由Word和Excel等类来实现
public interface OfficeAble {
public void start();
} //测试方法
package reflect; import org.junit.Test; public class Test01 {
@Test
public void testor() throws ClassNotFoundException, InstantiationException, IllegalAccessException{
//动态加载类,在运行时刻加载
// Class a = Class.forName("reflect.Word");
Class a = Class.forName("reflect.Excel");
System.out.println("a:"+a);//a:class reflect.Excel
//通过类类型,创建该类对象
OfficeAble oa = (OfficeAble)a.newInstance();
oa.start();
} }
java接口的好处是显而易见的,比如Class Word和Class Excel都是实现了OfficeAble接口,那么比如要调用Word.start()方法的时候,实例化Word类的时候,不一定强制转换为Word,而是可以直接强制转换为OfficeAble类型,然后调用start()方法。唯一需要多做的工作就是在Class.forName()的时候需要传入要具体使用的类,在这个例子中传入的参数就是 "package.ClassName",即"reflect.Word";而如果需要实例化的是Excel,那么只要在加载类的时候吧ClassName修改为Excel即可。
Java Interface,反射的更多相关文章
- Java:反射
初识Java反射机制: 从上面的描述可以看出Java的反射机制使得Java语言可以在运行时去认识在编译时并不了解的类/对象的信息,并且能够调用相应的方法或修改属性的值.Java反射机制的核心就是允许在 ...
- java笔记--反射进阶之总结与详解
一.反射进阶之动态设置类的私有域 "封装"是Java的三大特性之一,为了能更好保证其封装性,我们往往需要将域设置成私有的, 然后通过提供相对应的set和get方法来操作这个域.但是 ...
- java中反射学习整理
转载请注明:http://blog.csdn.net/j903829182/article/details/38405735 反射主要是指程序能够訪问.检測和改动它本身的状态或行为的一种能力. jav ...
- Java使用反射机制优化工厂方法
我先举个例子,有一个接口People,这个接口有一个方法: package com.wjy.reflect; public interface People { public abstract voi ...
- java笔录---反射机制(1)
引言 为了方便记忆java的反射机制,在这里仔细的总结了一下.主要是怕以后忘记了,这样也方便回忆.因为最近利用空余时间深入的了解spring和Mybatis框架, 像spring中核心模块IO ...
- java之反射的基本介绍
什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的以及动态调用对象的方法的功能称为Java的反射 ...
- Java的反射机制Reflect
简介: 动态获取类的信息.动态调用对象的方法的功能叫做:Java 的反射(Reflection)机制. Reflection是不同于C++等静态语言,而被视为准动态语言的关键性质.反射机制允许程序在运 ...
- 理解Java的反射与内省及其区别
java的内省机制和反射机制什么区别 内省操作只针对JavaBean,只有符合JavaBean规则的类的成员才可以采用内省API进行操作....而反射则不同,一个类的所有成员都可以进行反射操作. 内省 ...
- 面试题思考:什么是 Java 的反射机制
一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法.这种在运行时动态的获取信息以及动态调用对象的方法 ...
随机推荐
- CDH 无法查看history log
1.配置(core-site.xml) <property> <name>hadoop.http.staticuser.user</name> <valu ...
- Linux 下 Hadoop java api 问题
1. org.apache.hadoop.security.AccessControlException: Permission denied: user=opsuser, access=WRITE, ...
- android中像素单位dp、px、pt、sp的比较
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖 ...
- 什么是RAW数据源
RAW数据源 顾名思义,数据源就是数据的源头,怎么理解那? 大家可以把它想象成一个接口,会给我们返回数据,这个数据是动态的. 举个最简单的例子,比如我要在网页中加载出网站的标题,到时候每个页面都要用到 ...
- ASP.Net MVC3 - The easier to run Unit Tests by moq #Reprinted#
From: http://www.cnblogs.com/techborther/archive/2012/01/10/2317998.html 前几天调查完了unity.现在给我的任务是让我调查Mo ...
- web附件中文名
response.setHeader("Content-Disposition", "attachement;filename="+URLEncoder.enc ...
- protel99se中做拼板图解
很多时候我们要在protel99se中做拼板, 但是通常在复制进行拼版的时候会出现如下的效果,元件被重新命名了. 而无法达到我们需要的像下图的效果 那我们怎么办,才能达到上图的效果呢?其实操作很简单. ...
- Xamarin几十篇博客,roslyn和dotnet也开源了
.Net 基金会 http://www.dotnetfoundation.org/ 更新的真快,刚打完2的补丁包,3就粗来了............ https://www.visualstudio. ...
- android天气查询(二)之网络json数据的获取
前面一篇文章介绍了如何使用ksoap获取天气信息,但是使用的网络资源受到了限制,所以我们这里会采用第二种方法,可以无限制的获取.http://m.weather.com.cn/data/1010101 ...
- perl5 第九章 关联数组/哈希表
第九章 关联数组/哈希表 by flamephoenix 一.数组变量的限制二.定义三.访问关联数组的元素四.增加元素五.创建关联数组六.从数组变量复制到关联数组七.元素的增删八.列出数组的索引和值九 ...