先看代码,

  

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,反射的更多相关文章

  1. Java:反射

    初识Java反射机制: 从上面的描述可以看出Java的反射机制使得Java语言可以在运行时去认识在编译时并不了解的类/对象的信息,并且能够调用相应的方法或修改属性的值.Java反射机制的核心就是允许在 ...

  2. java笔记--反射进阶之总结与详解

    一.反射进阶之动态设置类的私有域 "封装"是Java的三大特性之一,为了能更好保证其封装性,我们往往需要将域设置成私有的, 然后通过提供相对应的set和get方法来操作这个域.但是 ...

  3. java中反射学习整理

    转载请注明:http://blog.csdn.net/j903829182/article/details/38405735 反射主要是指程序能够訪问.检測和改动它本身的状态或行为的一种能力. jav ...

  4. Java使用反射机制优化工厂方法

    我先举个例子,有一个接口People,这个接口有一个方法: package com.wjy.reflect; public interface People { public abstract voi ...

  5. java笔录---反射机制(1)

    引言   为了方便记忆java的反射机制,在这里仔细的总结了一下.主要是怕以后忘记了,这样也方便回忆.因为最近利用空余时间深入的了解spring和Mybatis框架,   像spring中核心模块IO ...

  6. java之反射的基本介绍

    什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的以及动态调用对象的方法的功能称为Java的反射 ...

  7. Java的反射机制Reflect

    简介: 动态获取类的信息.动态调用对象的方法的功能叫做:Java 的反射(Reflection)机制. Reflection是不同于C++等静态语言,而被视为准动态语言的关键性质.反射机制允许程序在运 ...

  8. 理解Java的反射与内省及其区别

    java的内省机制和反射机制什么区别 内省操作只针对JavaBean,只有符合JavaBean规则的类的成员才可以采用内省API进行操作....而反射则不同,一个类的所有成员都可以进行反射操作. 内省 ...

  9. 面试题思考:什么是 Java 的反射机制

    一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法.这种在运行时动态的获取信息以及动态调用对象的方法 ...

随机推荐

  1. Linux内核学习笔记-2.进程管理

    原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  2. java和.net 处理任意格式日期字符串转日期类型,

    1.SimpleDateFormat.parse 把指定格式字符串转日期类型 public static Calendar convToCalender(String str,String templ ...

  3. shopnc b2b2c如何开启伪静态??

    shopnc b2b2c开启伪静态的方法 一. windows环境下 1.先下载isapi rewrite插件,安装,然后我们把根目录下面的htaccess.txt那么修改成.htaccess即可. ...

  4. selenium 学习笔记 ---新手学习记录(5) 问题总结(java)

    1.今天遇到个奇葩问题,iframe有两个id相同的(如下图) 使用driver.switchTo().frame(“frmLinkPage1”);这个无法使用了. 后来改用driver.switch ...

  5. IOS 表视图(UITableVIew)的使用方法(2)名单的分段显示

    我们可以采用名字分段法,名字分段会在之后的小节中显示,这是转而使用球员的角色分段发,以最直接的入手点讲解好UITableView的分段使用方法.本节示例时基于上节的SimpleTableViewCon ...

  6. 基于MAVEN的SSM+ehcache+c3p0

    目录结构: 2.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...

  7. Django里面的RequestContext

    c = RequestContext(request, { 'foo': 'bar', }) get_template('about.html').render(c) 当我们定义一个RequestCo ...

  8. 具体解释coredump

    一,什么是coredump 我们常常听到大家说到程序core掉了,须要定位解决,这里说的大部分是指相应程序因为各种异常或者bug导致在执行过程中异常退出或者中止,而且在满足一定条件下(这里为什么说须要 ...

  9. 浅谈PHP技术应用

    序号:1210-41 黑龙江省高等教育自学考试 本科毕业论文 题    目    浅谈PHP技术 学员姓名    夏滟 专    业    计算机及应用 准考证号    010311192585 指导 ...

  10. 【转】install intel wireless 3165 driver for ubuntu 14.04.3

    [转]install intel wireless 3165 driver for ubuntu 14.04.3 Ubuntu 14.04.3 with 3.19 kernel can’t drive ...