+ 3
What the difference between dynamic and static polymorphism?
4 Answers
+ 8
In static binding, its like the function and the data on which that function is to be performed is known already at compile time and so are bound at compile time. Where as in dynamic binding the data and functions are not known until the run time, I mean we may have the data and function, but we do not know which function is to be performed on which data, it is only during the execution time that the functions are performed on the data and hence are bound at run time.
+ 4
Static polymorphism involves early binding or compile time binding whereas dynamic polymorphism uses
late binding or run time binding. The term static polymorphism is associated with overloaded methods
because it gives the impression that a single named method will accept a number of different argument types. The System.out.println() method is an example that may take String or Object references, boolean and
other primitive types as an argument. In fact, each overloaded method is separate and the compiler can see the difference between them. In this case, the argument types are fixed at compile time and are considered static. This has nothing to do with the Java keyword
static. Dynamic polymorphism is where a class overrides a superclass method or implements an interface. For example, any class may override the Object.toString() method and provide its own implementation, and this
is known at compile time. However, for a simple Java program that initiates a series of objects and calls their toString() method, the compiler does not consider the object references differently. Any differences in the objects' toString() implementations are only seen
at runtime, so they are considered dynamic.
+ 3
thanks
0
ahaha.. (not funny). i mean what happend at compile time and etc.. i have found an article in the Internet.. but there are not enough information..