当父类引用指向子类对象时,可以理解为子类转换成父类 所以子类这时候就是父类 所以这时候调用父类的静态方法时候,就相当于父类调用父类自己的静态方法 于是结果就是调用的父类的静态方法。
当调用的方法不是静态方法的时候就调用子类自己的方法
public class Hero { int hp; String name; float armor; public void kill(Mortal m){ System.out.println("击杀了"); } public static void battleWin(){ System.out.println("hero battle win"); } public static void main(String[] args) { Hero h =new ADhero(); h.battleWin(); } }