The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes overriding + overloading Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "overriding + overloading" Watch "overriding + overloading" New topic

overriding + overloading

cyril vidal
Ranch Hand

Joined: Jul 02, 2003
Posts: 247
Dear all,
Perhaps i'm wrong in telling this, but I did'nt see any example of overriding + overloading process in Dan's mock exam.
Perhaps it may be useful to have a look at a case based itself on Dan's mock example:

outputs : ABC
Class A has only one implementation of method m1. Class B overloads method m1 with a second implementation. Class C overloads method m1 with a third implementation. Reference c2 refers to an object of type A so only the A.m1 implementation is accessible.

Overloading + overriding:
Modification of the precedent code:

Output: CCA
Explanation: c1.m1(c1) is easy to understand.
What about c2.m1(c1)?
Like above, c2 refers to an object of type A. So, c2.m1() invokes A.m1() method's signature and return type at the compile time. Compiler looks for a method compatible with argument's type = C.
void m1(A a) {System.out.print("A");} is successfull.
But since c2 refers to an object of type C at runtime, and since this class overrides m1 from class A, this is this method that is finally invoked: so outputs is CA.
Hope this can help,

SCJP 1.4, SCWCD, SCBCD, IBM XML, IBM Websphere 285, IBM Websphere 287
Darren McLeod

Joined: Jul 07, 2003
Posts: 19
Wow, thanks for the example. I would never have realized such an occurance could happen. I had to compile and see it to believe it.

I agree. Here's the link:
subject: overriding + overloading
jQuery in Action, 3rd edition