* 非静态方法属于类的实例,是可以被子类重写,从而达到多态的效果; 静态方法属于类,是不能被重写,故而也不能实现多态。 * 下面是具体的验证过程 首先,定义一个超类A,里边定义一个静态方法和一个非静态方法: publicclassA{ publicvoidunstaticMethod(){ System.out.println("SuperClassunstaticMethod"); } publicstaticvoidstaticMethod(){ System.out.println("SuperClassstaticMethod"); } } 接下来,定义一个子类B,里边定义一个静态方法和一个非静态方法(形式上像是重写了超类的方法): public class B extends A { public void unstaticMethod() { System.out.println("SunClass unstaticMethod"); } public static void staticMethod() { System.out.println("SunClass staticMethod"); } } 在接下来,我们进行测试: public class Test { @SuppressWarnings("static-access") public static void main(String[] args) { A a = new A(); A a2 = new B(); a.unstaticMethod(); a2.unstaticMethod(); a.staticMethod(); a2.staticMethod(); } } 运行结果: SuperClass unstaticMethod SunClass unstaticMethod SuperClass staticMethod SuperClass staticMethod 从运行结果,我们可以知道,对于非静态方法,实现了多态的效果,而静态方法却没有。