方法可覆盖,变量不可覆盖,引用是父类,实例是子类,那么变量用父类的,方法用子类的 class father { int num = 5; public void call() { System.out.println("father"); } } class son extends father { int num = 9; public void call() { System.out.println("son"); } } public class a { public static void main(String[] args) { father b=new son(); System.out.println(b.num); b.call(); } } 以上输出: 5 son 若方法调用了变量,那么调用的是方法所在类中的变量 class father { int num = 5; public void call() { System.out.println(num); } } class son extends father { int num = 9; public void call() { System.out.println(num); } } public class a { public static void main(String[] args) { father b=new son(); System.out.println(b.num); b.call(); } } 以上输出: 5 9 class father { int num = 5; public void call() { System.out.println(num); } } class son extends father { int num = 9; } public class a { public static void main(String[] args) { father b=new son(); System.out.println(b.num); b.call(); } } 以上输出: 5 5