import java.util.*;

  class Instrument {
    private void play() {System.out.println("play");}  // When we make this private, 
					               // the output is different, what's 
						       // going on here?

    static void tune(Instrument i) {
        i.play(); 
    }
  }

  // Wind objects are instruments
  // because they have the same interface:
  public class Wind extends Instrument {
	
      public void play() {
       	System.out.println("wind.play");
      }
 	
      public static void main(String[] args) {
  	
          Wind flute = new Wind2();
          Instrument inst = new Instrument();
    
          flute.play();
          Instrument.tune(flute); // Upcasting, cast to an instrument
          Instrument.tune(inst);
      }
   } 