相关疑难解决方法(0)

Java:如何查找是否从基类重写了一个方法?

如何查明子类是否覆盖了某个方法?

例如,

public class Test {

static public class B {
    public String m() {return "From B";};
}

static public class B1 extends B {

}

static public class B2 extends B {
    public String m() {return "from B2";};
}

/**
 * @param args
 * @throws FileNotFoundException 
 */
public static void main(String[] args)  {

    B b1 = new B1();
    System.out.println("b1 = " + b1.m());
    B b2 = new B2();
    System.out.println("b1 = " + b2.m());
}

}
Run Code Online (Sandbox Code Playgroud)

给定B的一个实例,我怎么知道任何派生类是否有像B2这样的重写方法m()?

更新:我的问题不明确.实际上,我试图在不诉诸反思的情况下询问是否可行.这种检查是在一个紧凑的循环中完成的,它用于性能破解以节省一些CPU周期.

java methods inheritance overriding introspection

17
推荐指数
5
解决办法
1万
查看次数

标签 统计

inheritance ×1

introspection ×1

java ×1

methods ×1

overriding ×1