hi Garret, well, if a method is static then it is invoked via the class rather than an instance. so actually the java runtime doesn't even use the object reference you return (as null) to invoke the method mountain(). u can try this as well, Test t = null; t.mountain(); it will work. here is the code i wrote,
but when we compile this class and .class file is generated compiler takes care of the static method calls as a part of the compile optimization/simplification(if u would say)... here is the .class file code after decompiling it via "cavaj" (one of the decompiler) i have put only the main() method of the TestStaticRef class here..
here as u see favorite() and mountain() methods for TestStaticRef and TestStaticRef1 are called via the class name rather than the instance that u return at run time... so it works!! regards maulin.