java - Run Time Polymorphism -


class {     public void display(){         system.out.println("from class a");     } }  class b extends {     public void display() {         system.out.println("from class b");     } }  public class test {     public static void main(strings[] args){          a = new a();         b = new b()         a.display();         b.display();     } } 

output:

from class     class b 

now, getting output expected. want know why using a b = new b(), when same thing can achieve using b b = new b().
advantage of using former techniques, , when beneficial me?

lets take example here. know birds can fly, there exceptions. know behavior, lets model this.

generally, birds can fly, so:

class bird {   void fly() {       system.out.println("i can fly");     }  }  class eagle extends bird {       void fly() {         system.out.println("i can fly high");     } } 

we know ducks can't fly, don't birds. @ runtime whether specific bird can fly or not, depending on bird.

class duck extends bird {       void fly() {         system.out.println("i can walk or swim only");     } }  class flightdemo {       public static void main(string[] args) {          bird bird = new bird();          bird.fly(); // output: can fly           bird eagle = new eagle();          eagle.fly(); // output: can fly high           bird duck = new duck();          duck.fly(); // output: can walk or swim       } } 

you saw @ runtime it's decided ducks can't fly. can override fly behavior , walk or swim. saw duck bird, , can't fly, have overridden behavior, , still duck bird, , can walk or swim.


Comments

Popular posts from this blog

angular - Is it possible to get native element for formControl? -

unity3d - Rotate an object to face an opposite direction -

javascript - Why jQuery Select box change event is now working? -