class A{ public static void foobar(String s){ System.out.println(s); } } class B extends A{ @overried // 编译器会报错 public static void foobar(String s){ System.out.println(s); } }
public static void main(String [] args){ A a= new B(); a.foorbar();//这里会调用父类的方法,如果foobar方法是普通的成员方法, //没有static修饰的话,就会调用子类的覆写后的方法,即指向谁, //调用谁,但是有static修饰的方法,子类和父类中的方法签名相同, //会按照对象左边(是谁的声明)就去调用谁的方法。 }
圣思园java se培训总结(22-24)(static和final)
原文:http://www.cnblogs.com/yuxishua/p/5021042.html