怎样判断一个方法是继承来的方法? 已知A类继承B类,判断A类的哪些方法是继承B类,哪些是A类本身定义的,有API吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 a类继承了b类,a就继承了b的所有方法,除非你重写这个方法 API当然是没有了, 可能用反射可以做. A类中可见的所有方法,要么是自己的,要么是重写了B类的。LZ想实现什么功能呢? 最简单的办法,在方法里写一句话证明他是父/子类或者是对象.getclass() 最简单方法就是去看看B类源代码,也可以用A类new个对象,然后后边加个"."看到A类里没有的方法都是从B类继承的。Java&Oracle学习交流群,知无不言,言无不尽。欢迎大家交流分享学习工作心得。QQ群:20378027。另寻常在线,爱帮助人的群主俩名。 先用a.class返回 A类a.class.getSuperclass() 取得父类Ba.class.getMethods() 取得A类的所有方法a.class.getSuperclass().getMethods() 取得父类的所有方法。a.class.getMethods()减掉a.class.getSuperclass().getMethods() 就行了不过如果方法被重写了就麻烦了。 如果本类中没有,而可以用的方法就是继承。如果本类中有,通过super.method()调用的方法,就是继承来的。 编完了测试代码,才发现#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()); } }} 忘了,上面代码中第一行导入的Class不需要 string -> date的问题 一个关于java io的问题 关于Vector的用法问题 面试了 郁闷了? java中如何调用其它程序呀? jsdk.jar在那放在哪里啦 关于一些设置 新手求救,我在看JAVA核心编程II的电子版,里面用到corejava包,哪个大虾能发给我一个 如何用“按钮”提前结束一个循环 谁考过SCJP?能否谈一谈题目和有关事项是怎样的。 匿名方法 Java中如何对多节点的xml文档进行dom解析
LZ想实现什么功能呢?
或者是对象.getclass()
Java&Oracle学习交流群,知无不言,言无不尽。欢迎大家交流分享学习工作心得。QQ群:20378027。另寻常在线,爱帮助人的群主俩名。
a.class.getSuperclass() 取得父类B
a.class.getMethods() 取得A类的所有方法
a.class.getSuperclass().getMethods() 取得父类的所有方法。a.class.getMethods()减掉a.class.getSuperclass().getMethods() 就行了
不过如果方法被重写了就麻烦了。
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());
} }
}