Thursday, 29 March 2012

Late Binding Code



A refA2 = new B();
//refA2  is a reference to an object of class B


Example :

class Burger { 
  public int mazaa(){
    return 0;
  }
}

class ChickenBurger extends Burger {
  public int mazaa(){
    return 100;
  }
}
class BeefBurger extends Burger {
    public int mazaa(){
    return 80;
  }
}
class EggBurger extends Burger {
    public int mazaa(){
    return 70;
  }
}
class AlooBurger extends Burger {
    public int mazaa(){
    return 50;
  }
  public String Speciality(){
    return "Pure Vegetarian";
  }
}
class DumDum {
  public void eatBurger(EggBurger eb) {   
    if (eb instanceof EggBurger)
      println("DumDum likes Egg burger");
  }
  public void eatBurger(ChickenBurger cb) {
    if (cb instanceof ChickenBurger)
      println("DumDum likes Chicken burger");
  }
}
class Person {
  public void eatBurger(Burger b) {
    String ans;
    if (b instanceof ChickenBurger)
      println("Enjoying chicken burger");
    else if (b instanceof BeefBurger)
      println("Enjoying Beef burger");
    else if (b instanceof EggBurger)
      println("Enjoying Egg burger");
    else if (b instanceof AlooBurger)
      println("Enjoying Aloo burger");
    else
      println("Enjoying SOME burger");
  }
}
void setup() {
  Person p1 = new Person();
  Burger b = new ChickenBurger(); 
  println(b.mazaa());
  println(b.Speciality());
  p1.eatBurger(b);
  DumDum d1 = new DumDum();
  d1.eatBurger(new EggBurger());
}
void draw() {
}

No comments:

Post a Comment