static 方法的继承和 super
如果一个static方法被子类覆盖(override)了,运行时会调用哪个版本呢?
第二个问题,我们有时候会用super去调用父类的实现。如果这个类又被继承了,那这个super会指向哪个类呢?
下面的程序的运行结果是什么呢?
class High {void doIt () {System.out.println("doIt in High");}}class Mid extends High {void doIt () {System.out.println("doIt in Mid");}void makeIt () {super.doIt();}static void mmm () {System.out.println("static in Mid");}}class Low extends Mid {void doIt () {System.out.println("doIt in Low");}static void mmm () {System.out.println("static in Low");}}public class Test {public static void main (String[] args) {Low obj1 = new Low();Mid obj2 = new Low();obj1.makeIt();obj2.makeIt();obj1.mmm();obj2.mmm();}}