1.什么是反射
生物学:反射是机体对内在或外在刺激有规律的反映。
java反射:官方解释是程序在运行状态中,对于任意一个类,都可以知道这个类所有属性和方法,对于任意一个对象都能够调用他的任意方法和属性。
定义一个接口
public interface AnimalInterface{
//里面有一个叫的方法
public void jiao();
}
创建实体类实现AnimalInterface接口
public class cat implements{
//重写jiao()方法
public void jiao(){
System.out.println("猫叫...");
}
}
public class Dog implements DongW {
@Override
public void jiao() {
System.out.println("狗叫...");
}
}
反射调用
package Reflection;
import entity.Cat;
import entity.Dog;
import entity.DongW;
import java.lang.reflect.Method;
import java.util.Scanner;
public class TestRlection {
public static void main(String[] args) throws Exception {
System.out.println("请输入动物名称:");
Scanner input=new Scanner(System.in);
String name=input.next();
Class c= Class.forName("entity."+name);
DongW dongW=(DongW)c.newInstance();
dongW.jiao();
Method();
}
public static void Method() throws Exception {
Scanner input1=new Scanner(System.in);
System.out.println("请输入对象名");
String name1=input1.next();
Class c=Class.forName("entity."+name1);
Method[] methods=c.getDeclaredMethods();
for (Method m:methods) {
System.out.println("方法名:"+m.getName()+"()");
}
}
}



