Once this form has been customized for your institution, you can use this button to send your lab work. Be sure to read the instructions before starting your work.
To gain experience with
Consider using the following Card class as a superclass to implement a hierarchy of related classes:
class Card { public Card() { name = ""; } public Card(String n) { name = n; } public boolean isExpired() { return false; } public void print() { System.out.print(name); } private String name; }
Write definitions for each of the subclasses. For each subclass, supply private data members. Leave the bodies of the constructors and the print functions blank for now.
Implement constructors for each of the three subclasses. Each constructor needs to call the superclass constructor to set the name.
Supply the implementation of the print function for the three subclasses. The subclass methods need to call the superclass print method to print the name of the cardholder.
Devise another class, Billfold, which contains an array Card[] cards, a method addCard(Card) and a method function printCards(). Of course, printCards invokes the print method on each card.
Have a main function populate a Billfold object with Card* objects, and then call print_cards.
Show the output of your test run.
Explain why the output shows that the call to print uses dynamic binding.
The Card superclass defines a method isExpired which always returns false. This method is appropriate for the ID card and the phone card because those cards don't expire. But it is not appropriate for the driver license. Supply a member function DriverLicense.isExpired() that gets the current time and checks if the driver license is already expired.
Note that you should not redefine isExpired for the other card types. They simply inherit the superclass function.
Add a method printExpiredCards to the Billfold which queries each card whether it is expired and only prints those that are expired.
Write a main program that populates a billfold with an ID card, a phone card and an expired driver license. Then call the printExpiredCards function.
Don't forget to send your answers when you're finished.