您的位置:首页 > 编程语言 > Java开发

java中如何判断一个子类方法是否已经被重写

2016-08-31 15:46 591 查看
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());
}
}
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: