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

转载 2016年08月31日 15:46:07
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());
                        }
                    }
                }
            }
        }
    }
}

MFC 判断子窗体是不是已经打开,避免重复创建

MFC 判断子窗体是否已经打开,避免重复创建 在主窗体中,嵌入一个很多个子窗体,但是,每次只显示一个。 我的做法是,首先在主窗体头文件中定义子窗体对象,然后在单击显示按钮的时候,先判断子窗体是否已...
  • ghevinn
  • ghevinn
  • 2014年06月09日 10:39
  • 3806

Java web工程判断用户是否重复登录

前几天,网上找了些朋友的资料,做了一个小功能,验证用户是否重复登录。 原理就是:每一个用户,登录前有一个验证,当第一次登录时,会把其session信息,添加到一个特定的静态变量中。当第二次登录时,验证...
  • zyujie
  • zyujie
  • 2013年03月26日 10:55
  • 14116

如何确定Java类是从哪个包加载的

原文:http://kejun.iteye.com/blog/510999  java的类装载器使用的是优先策略,加载类的时候先找到哪个就加载哪个。有时候我们做一个系统,当类库非常庞大的时候,类可能会...
  • lan861698789
  • lan861698789
  • 2014年01月21日 21:29
  • 1170

java方法重写的时候,一个调用父类还是子类方法的问题

====================================================== 注:本文源代码点此下载 =============================...
  • javazhuanzai
  • javazhuanzai
  • 2012年02月01日 01:25
  • 333

子类调用父类方法:c++和java的不同

子类调用父类方法:c++和java的不同   bool GameScene::init(){ if (!Scene::init()) { return false; } } 我自定义了一个...
  • shang309073819
  • shang309073819
  • 2014年01月31日 14:35
  • 1735

SubClasing用法--子类重写父类方法,父类直接调用实现方式

subclasing 浅谈 --  父类和子类之间进行消息传递的一种实现 继承:一个派生类可以从一个基类派生,这个派生类就是子类,当子类继承父类之后,可以重写父类的方法或者直接调用父类的方法,即子类...
  • luxiaobin1985
  • luxiaobin1985
  • 2015年05月12日 09:41
  • 584

例题:子类重写父类方法后的调用规则

例题: (单选题) 下面代码的输出是什么? public class Base { private String baseName= "base"; public Base(){...
  • xidiancoder
  • xidiancoder
  • 2017年02月21日 09:46
  • 2252

关于子类重写父类方法override

 子类重写父类的方法时声明抛出异常不能比父类范围大 在java 中,当我们子类要重写父类中的方法,如果父类的方法有异常声明,那么子类重写这个方法时候,所要声...
  • u013735633
  • u013735633
  • 2015年03月20日 11:46
  • 1282

C++11新特性:final和override 子类重写父类方法

下面的 final 和 override 都是写在派生类(子类)中父类声明的virtual虚函数后面。 例如: class father { public:      void te...
  • u012414586
  • u012414586
  • 2014年08月08日 15:13
  • 1412

再探Java子类方法重写父类方法遵循“两同两小一大”规则

今天在牛客碰到这样一道题: class A { public A foo() { return this; } } class B extends A { public A foo() ...
  • zjkC050818
  • zjkC050818
  • 2017年07月18日 14:09
  • 824
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中如何判断一个子类方法是否已经被重写
举报原因:
原因补充:

(最多只允许输入30个字)