package com.test;
import java.lang.reflect.Method;
public class B extends A {
@Override
public void test1(int i) {
System.out.println("B test1");
}
public void test2() {
System.out.println("B test2");
}
public void test3() {
System.out.println("B test3");
}
public static void main(String[] args) {
B b = new B();
Method[] bfs = b.getClass().getDeclaredMethods();
Method[] afs = b.getClass().getSuperclass().getDeclaredMethods();
for(Method bm : bfs) {
for(Method am : afs) {
if(bm.getName().equals(am.getName()) &&
bm.getReturnType().equals(am.getReturnType())) {
Class[] bc = bm.getParameterTypes();
Class[] ac = am.getParameterTypes();
if(bc.length == ac.length) {
boolean isEqual = true;
for(int i=0;i<bc.length;i++) {
if(!bc[i].equals(ac[i])) {
isEqual = false;
break;
}
}
if(isEqual) {
System.out.println(b.getClass()+" has method " + bm.getName() +
" override " + b.getClass().getSuperclass());
}
}
}
}
}
}
}
java中如何判断一个子类方法是否已经被重写
最新推荐文章于 2024-01-30 13:05:34 发布