wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes Overloading and Overriding Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Overloading and Overriding" Watch "Overloading and Overriding" New topic
Author

Overloading and Overriding

Arnb Sen
Ranch Hand

Joined: Feb 23, 2004
Posts: 145
Why does this code compile ?


public class class1 {
public static void main(String args[]) {
System.out.println("main");
}

public void test(String name) {
System.out.println("test");
}

public void test(StringBuffer name){}
public void test(String name){}
}


[ November 26, 2005: Message edited by: Arnb Sen ]

Regards,<br />Arnab
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42357
    
  64
It doesn't. You can't have two methods declarations with the same signature. You can however, as the class does, overload 'test' by methods with different signatures.


Ping & DNS - my free Android networking tools app
Arnb Sen
Ranch Hand

Joined: Feb 23, 2004
Posts: 145
Thanks Ulf.


These are set of codes which I wrote. Some are overloading, some are overriding and some are simlpe hiding.

I have clasified them. Are they correct ?

FIRST CODE



SECOND CODE



THIRD CODE



FOURTH CODE



FIFTH CODE



SIXTH CODE



Categories : Overloading, Overriding, Hiding

1. FIRST CODE - Creating an instance of Base class in the subclass. Which cateory does this fall in ?
2. SECOND CODE - Is this Overriding ? Code does not compile. Method "methodInBase" has different return type in subclass as compared to that of the Base class.
3. THIRD CODE -
4. FOURTH CODE - This is Overriding
5. FIFTH CODE - This is Overriding as well
6. SIXTH CODE - This will not compile because sublass variable cannot reference an instance of Base class.
Sowjanya Chowdary
Ranch Hand

Joined: Aug 22, 2005
Posts: 35
Arnb,

1. FIRST CODE - overloading
2. SECOND CODE - This is not a valid overriding or overloading. That is the reason for compilation error.
3. THIRD CODE - same as above
4. FOURTH CODE - This is Overriding.
5. FIFTH CODE - This is Overriding.
6. SIXTH CODE - This is also Overriding. But, compilation error because base class object can't be assigned to a subclass reference(class2 c2 = new class2Base() .
Hope this helps.
Stuart Ash
Ranch Hand

Joined: Oct 07, 2005
Posts: 637
Originally posted by Arnb Sen:
Why does this code compile ?



[ November 26, 2005: Message edited by: Arnb Sen ]


What made you say it compiles??


ASCII silly question, Get a silly ANSI.
Arnb Sen
Ranch Hand

Joined: Feb 23, 2004
Posts: 145
Hi Amrutha,

Thanks a lot. Helps

Hi Stuart,

The code was slightly different when I was compiling in textpad and then to make it neater while posting, I modified some of the names.

When Ulf pointed out that it is not compiling, I cross-checked the code that I had and the one I posted and realised that while changing the names, I made an error.
Stuart Ash
Ranch Hand

Joined: Oct 07, 2005
Posts: 637
Ah ok
 
Consider Paul's rocket mass heater.
 
subject: Overloading and Overriding