java - Overriding Function in Polymorphism with different return type -


take following code , me understanding why return type of "mf.display" object type. though "mf" of "myfather" type still return type of "mf.display()" must integer type

class myfather {     object display()     {         system.out.println(1000);         return 1000;      } }   class myson extends myfather {     @override     integer display()     {         system.out.println(500);         return 500;     } }   public class testinheritance {      public static void main(string[] args) {         myfather mf = new myson();         integer myint = mf.display();  // error.type mismatch cannot convert object                                          //   integer     } } 

the type myfather declares method object display(), when write

mf.display() 

the type of expression object. doesn't matter type of object assigned mf. makes sense because mf have been method parameter:

static void usefather(myfather mf) {    mf.display(); } 

and call such method instance, such as

usefather(new myfather()); 

the code must not allowed assume has instance of subclass.


Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -