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-12-05 10:00:00 发布
本文通过一个具体的Java示例展示了如何使用反射API来确定子类是否覆盖了父类的方法。通过对参数类型、返回类型及方法名的比较,验证了方法覆盖的有效性。
1272

被折叠的 条评论
为什么被折叠?



