A. Introduction: consider the following problem:
Instead of solving the problem itself, let's think about the potential application of this program. A quick search finds besides the NFL draft, there are many more other drafts.
Even though you could finish the programming for the NFL draft, do you want to repeat the whole process 20 times for each of all these leagues?
Probably not. You might want to reuse the NFL draft program, modify it to apply to other leagues.
But even though, it might be tedious and confusing to maintain 20 draft programs, which have some overlapping elements but each has its own rules and uniqueness.
Java has a mechanism just for this situation, it is called inheritance, which allows you to define a superclass to store all the common elements(variables and methods), in this case, a Player class, and other "subclasses" such as NFLPlayer, NBAPlayer, and MLBPlayer to keep uniqueness. The subclasses will "inherit" the common variables and methods from the superclass by default so you don't have to write them 20 times.
The classes of Player and NFLPlayer are here.
There are many similar situations. For instance, class SavingsAccount and class CheckingAccount are subclasses of class BankAccount; class Student and class Faculty are subclasses of class Person.
B. Watch (Slides)
C. Try this: