Posts

Showing posts from April 15, 2012

Why is Static method is called using the class name and not by an object?

Since I recall this question, let me post this to keep myself remember this stuff. Well, ideally, a static class is called using it's class name. So when saying, class A { ... public static int mystaticmethod() { ... } } then the encourage call is A::mystaticmethod(), right? Well the reason why is that, static binding [or early binding] is done at compiled time, and not by run-time. So it's very ideal to call the A class than an object, let say "A a = new A();" then call it as a.mystaticmethod() which is strongly discouraged. So anyway, that's the reason why calling a static method is thru it's class name and not by an object. Object is done at run-time, where dynamic binding is done in that process.