public class Programmer extends DisgruntledEmployee { public Programmer(String name) { super.setName(name); super.setGender(GenderFactory.MALE); super.livesWithParents = true; } public String isWearing() { return "black"; } public Skin getSkinType() { return new Skin(SkinFactory.PASTY_SKIN); } public void tellAJoke(Crowd crowd) { Joke joke = new Joke(); joke.setJokeType(JokeFactory.OBSCURE_HUMOUR); joke.setAwkwardness(JokeFactory.EXTREMELY_AWKWARD); try { joke.tellTo(crowd); } catch (CrowdNotAmusedException e) { super.frown(); super.twiddleThumbs(); } } }