1   package ducks;
2   
3   public abstract class ArchDuck {
4   	abstract String identity();
5   
6   	String ancestors;
7   
8   	public String heritage() {
9   		return identity() + " born of " + ancestors;
10  	}
11  
12  	public String whoami() {
13  		return "I am " + heritage() + ".";
14  	}
15  
16  	public ArchDuck() {
17  		ancestors = "the void";
18  	}
19  
20  	ArchDuck(ArchDuck d) {
21  		ancestors = d.heritage();
22  	}
23  
24  	ArchDuck(int i) {
25  	    // ignore i
26  	    if (i == 0) {
27  	    }
28  		ancestors = "an integer";
29  	}
30  
31  	ArchDuck(String i) {
32  		ancestors = "the string \"" + i + "\"";
33  	}
34  }