接口和反射

一、 接口: interface

a) 语法:

Public interface InterfaceName{

//成员变量

//方法的声明

}

b) 特点:

1、 没有构造方法,不可以实例化。(接口通常是作为类型使用,且假设一个类实现了多个接口,用不同的接口类型接收实现类对象,可以起到限制权限功能)

2、 所有成员变量都是公共静态常量

3、 所有方法只有声明,无方法体

4、 实现/继承的类,必须实现接口中的所有声明方法(除非实现类为抽象类,或接口继承接口)

5、 接口可以多继承

二、 反射 --只给 class文件 反射出对象

//接口

MyType mt = null;

try {     //class文件地址 =com.njaccp.s2.javaoop.cha4.reflect.MyTypeImpl 用.代替路径的\    MyTypeImpl -文件名称

Class<?> c = Class.forName("com.njaccp.s2.javaoop.cha4.reflect.MyTypeImpl"); //class文件地址

mt = (MyType)c.newInstance();   --把路径下获取的接口强转为父类接口

mt.selfIntroduce();      --调用父类接口中的方法

} catch (ClassNotFoundException e) {

System.err.println("字节码文件不存在:"+e.getMessage());

} catch (InstantiationException e) {

System.err.println("获取实例失败");

} catch (IllegalAccessException e) {

System.err.println(e.getMessage());

}

return mt;

 

原文地址:https://www.cnblogs.com/Sora-L/p/6915233.html