using System; using System.Windows.Forms; 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 virtual void status() // overridable method { MessageBox.Show("status: won " + wins + " games and lost " + losses); Console.WriteLine("status: won " + wins + " games and lost " + losses); } public bool betterthan(team otherteam) { return (wp() > otherteam.wp()); } } // class team // a subclass: only football teams have quarterbacks: class fbteam : 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 override void status() { //((team)this).status(); // crashes C#!!! base.status(); // super.status(); in java MessageBox.Show("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(); Console.WriteLine( "mets' winning percentage is {0:F}",mets.wp()); Console.WriteLine("yankees' is " + yankees.wp()); Console.WriteLine(mets.betterthan(yankees)); fbteam jets; jets = new fbteam("Vinny Testaverde"); jets.lose(); jets.lose(); jets.lose(); jets.status(); jets.changeqb("Vinny Maffea"); jets.win(); } // main } // teams