/* java version of teams program */ class team { private int wins; private int losses; public team() { wins = 0; losses = 0; } public void win() { wins++; } public void lose() { losses++; } public double wp() { return ((double)wins)/(wins+losses); } public void status() // overridable method { System.out.println("status: won " + wins + " games and lost " + losses); } public boolean betterthan(team otherteam) { return (wp() > otherteam.wp()); } } // class team // a subclass: only football teams have quarterbacks: class fbteam extends team // fbteam extends team in java { private String qb; public fbteam(String q) // constructor { qb = q; } // can't do base(); - can do super() in java public void changeqb(String newqb) { qb = newqb; } public void status() { //((team)this).status(); // crash java? yes! :-( super.status(); // base.status(); in c# System.out.println("and the quarterback is " + qb); } } // subclass fbteam public class teams { public static void main(String[] args) { team mets, yankees; mets = new team(); yankees = new team(); mets.win(); mets.win(); mets.lose(); yankees.lose(); yankees.win(); mets.status(); yankees.status(); System.out.println( "mets' winning percentage is " + mets.wp()); System.out.println("yankees' is " + yankees.wp()); System.out.println(mets.betterthan(yankees)); fbteam jets; jets = new fbteam("Vinny Testaverde"); jets.lose(); jets.lose(); jets.lose(); jets.status(); jets.changeqb("Vinny Maffea"); jets.win(); jets.win(); jets.status(); } // main } // teams