1、父类
class Person {
public final void excute(String methodName) {
Method[] mArray = this.getClass().getMethods();
for (Method m : mArray) {
if (m.getName().startsWith(methodName)
&& Modifier.isPublic(m.getModifiers())
&& m.getReturnType().equals(Void.TYPE) && !m.isVarArgs()
&& !Modifier.isAbstract(m.getModifiers())) {
try {
m.invoke(this);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
}
2、子类
class Hanmeimei extends Person {
public void eatApple() {
System.out.println("Hanmeimei eatApple");
}
public void eatTomato() {
System.out.println("Hanmeimei eatTomato");
}
}
class Lilei extends Person {
public void sleepInBed() {
System.out.println("Lilei sleepInBed");
}
public void sleepInFloor() {
System.out.println("Lilei sleepInFloor");
}
}
3、使用
Person hanmeimei = new Hanmeimei();
hanmeimei.excute("eat");
Person lilei = new Lilei();
lilei.excute("sleep");
4、结果
Hanmeimei eatApple
Hanmeimei eatTomato
Lilei sleepInBed
Lilei sleepInFloor
|