// 
// PetTest.java
// Example of constructor calls in subclasses
//
// Nadeem Abdul Hamid
// CSC 121 - Spring 2005
//


public class PetTest {
    public static void main( String args[] ) {
	Cat c = new Cat( "Tiger", 3, true );
    }
}

/*
Program run:

$ java PetTest
Invoking Pet constructor: Tiger 3
Invoking Cat constructor: Tiger 3 true

*/


class Pet {
    
    String name;
    int age;

    public Pet( String name, int age ) {
	this.name = name;
	this.age = age;
	System.out.println( "Invoking Pet constructor: " + name + " " + age );
    }

}


class Cat extends Pet {

    boolean likesMilk;

    /*
    public Cat( String name, int age, boolean milk ) {
    // This gives an error:
    // Pet.java: Pet(String,int) in Pet cannot be applied to ()
	this.name = name;
	this.age = age;
	this.likesMilk = milk;
    }
    */

    public Cat( String name, int age, boolean milk ) {
	super( name, age );  // must be first statement in constructor
	likesMilk = milk;
	System.out.println( "Invoking Cat constructor: "
			    + name + " " + age + " " + milk );
    }

}