public class go { 
example

public static void main(String[] args) { person p = new person(); p.talk(); // empty p.become(actor.Student); p.talk(); // OOP p.become(actor.Employer); p.talk(); // money p.become(new adult()); p.talk(); // interesting p.become(actor.Student); p.talk(); // OOP p.become(p); p.talk(); // old role: employer p.become(actor.Person); p.talk(); // initial state } };

slide: go.java