已知A类继承B类,判断A类的哪些方法是继承B类,哪些是A类本身定义的,有API吗? 

解决方案 »

  1.   

    a类继承了b类,a就继承了b的所有方法,除非你重写这个方法
      

  2.   

    API当然是没有了, 可能用反射可以做. 
      

  3.   

    A类中可见的所有方法,要么是自己的,要么是重写了B类的。
    LZ想实现什么功能呢?
      

  4.   

    最简单的办法,在方法里写一句话证明他是父/子类
    或者是对象.getclass()
      

  5.   

    最简单方法就是去看看B类源代码,也可以用A类new个对象,然后后边加个"."看到A类里没有的方法都是从B类继承的。
    Java&Oracle学习交流群,知无不言,言无不尽。欢迎大家交流分享学习工作心得。QQ群:20378027。另寻常在线,爱帮助人的群主俩名。
      

  6.   

    先用a.class返回 A类
    a.class.getSuperclass() 取得父类B
    a.class.getMethods() 取得A类的所有方法
    a.class.getSuperclass().getMethods()   取得父类的所有方法。a.class.getMethods()减掉a.class.getSuperclass().getMethods() 就行了
    不过如果方法被重写了就麻烦了。
      

  7.   

    如果本类中没有,而可以用的方法就是继承。如果本类中有,通过super.method()调用的方法,就是继承来的。
      

  8.   

    编完了测试代码,才发现#7楼已经回答了,不过还是发上来吧import java.lang.Class;
    import java.lang.reflect.*;class Base {
        public int add(int a,int b){
            return(a+b);
        }
        public int multiply(int a,int b){
            return(a*b);
        }    
    }public class TestGetBaseMethod extends Base{
        public float divide(float a,float b){
            return(a/b);
        }
        public static void main(String args[]){
            TestGetBaseMethod tg=new TestGetBaseMethod();
            Class sub=tg.getClass();
            Class base=sub.getSuperclass();
            Method methods[]=base.getDeclaredMethods();
            System.out.println("父类中的方法:");
            for(int i=0;i<methods.length;i++){
                System.out.println(methods[i].getName());
            }    }
    }
      

  9.   

    忘了,上面代码中第一行导入的Class不需要