package study.java.grammer; import java.lang.reflect.Field; class Father { public int i=1; private int j = 3; public void print() { System.out.println(i); } public void fatherOnly() { System.out.println("father only"); } } class Son extends Father { public int i=2; public void print() { System.out.println(i); } public void sonOnly() { System.out.println("son only"); } } public class FatherSon { public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException { Father son = new Son(); // 打印父类 System.out.println(son.i); //System.out.println(son.j); // 打印子类方法(子类成员变量) son.print(); son.fatherOnly(); //son.sonOnly(); System.out.println(son.getClass().getName()); Class clazz = son.getClass(); System.out.println("clazz.getDeclaredFields()"); Field[] dfields = clazz.getDeclaredFields(); for(Field field:dfields) { System.out.println(field.getName()); } System.out.println("clazz.getFields()"); Field[] afields = clazz.getFields(); for(Field field:afields) { System.out.println(field.getName()); System.out.println(field.get(son)); } } }