• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

q on overloading and overriding

 
JayaSiji Gopal
Ranch Hand
Posts: 303
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What is the output of trying to compile and run the following code?
(Select one correct answer)
--------------------------------------------------------------------------------

public class Test058 extends Super
{
public static void main(String args[]) {
Test058 t = new Test058();
Super s = (Super)t;
s.method('a');
}

public void method(int i){System.out.println("base int");}
public void method(char c){System.out.println("base char");}
}

class Super
{
public void method(int i){System.out.println("super int");}
public void method(char c){System.out.println("super char");}
}

--------------------------------------------------------------------------------

A: base char
B: super char
C: base int
D: super int

i answered b, but the correct answer is a.

When u say, Super s = (Super) t;
subclass is cast to be a superclass and the result is stored in superclass ref?
so, at runtime, s refers to Super?
 
Nitin Bhagwat
Ranch Hand
Posts: 132
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Subclass Object is cast to superclass type. Still object is of subclass. Because of joava's runtime polymorphism, it will check the object to call correct version of method.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic