1. getMethods()
获取所有public修饰的方法,包括本类和父类,当父类和子类有同名方法时只会查出子类的方法
2. getDeclaredMethods()
获取本类不包含父类的所有方法,即本类的公有和私有方法,当我们使用私有方法时,要暴力破解即调用method.setAccessble(true);
class B{
public void eat(){
System.out.println("B吃东西");
}
private void say(){
System.out.println("B类方法");
}
}
class F extends B{
public void eat(){
System.out.println("F吃东西");
}
private void say(){
System.out.println("F父类方法");
}
}
class Test {
public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException {
Class<F> fClass = F.class;
F f = fClass.newInstance();
Method[] declaredField = fClass.getMethods();
for (Method M :declaredField) {
System.out.println(M);
}
}
}
getMethods()
获取所有**public**修饰的方法,包括本类和父类,当父类和子类有**同名方法时只会查出子类的方法**
// public void cn.itcast.travel.web.servlet.F.eat()
// public final void java.lang.Object.wait() throws java.lang.InterruptedException
// public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
// public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
// public boolean java.lang.Object.equals(java.lang.Object)
// public java.lang.String java.lang.Object.toString()
// public native int java.lang.Object.hashCode()
// public final native java.lang.Class java.lang.Object.getClass()
// public final native void java.lang.Object.notify()
// public final native void java.lang.Object.notifyAll()
getDeclaredMethods()
获取**本类不包含父类**的所有方法,即本类的**公有和私有方**法
//public void cn.itcast.travel.web.servlet.F.eat()
//private void cn.itcast.travel.web.servlet.F.say()
}