public abstract class Animal { protected boolean hasColdNose; public abstract String speak(); public void setHasWetNose(boolean hasColdNose) { this.hasColdNose = hasColdNose; } public boolean hasColdNose() { return hasColdNose; } } public class Dog extends Animal { public Dog() { hasColdNose = true; } public String speak() { return "woof"; } } public class Bird extends Animal { public Bird() { hasColdNose = false; } public String speak() { return "chirp"; } }
public class Main { public Main() { Animal fido = new Dog(); Animal bigbird = new Bird(); System.out.println( "fido says " + fido.speak() ); System.out.println( "bigbird says " + bigbird.speak() ); } public static void main(String[] args) { new Main(); } }