Now we want to extend our Library example a bit more. This time we will use inheritance.1 2

Step 1

First we create a class with the name Medium. This class need the following member:

  • a protected field “borrowedTo” with the type of UserAccount
  • a string property “Title”
    • it has a get and a protected set
  • a constructor with one parameter: title
  • a virtual method “Search” that searches in its mambers with a given query and returns true if a member matches with the search query

Hint: It would be great if the class is in the same folder than the Book class. Hint: Dont forget the base constructor.

Step 2

Now let our Book class be derived from Medium and adjust it to the derivation.

Hint: Maybe you can delete a few lines of code in Book because of this derivation.

Step 3

Adjust your “Search” method in Book so that it will use its derived code.

Hint: A base call wouldn’t be a bad idea.

Step 4

Adjust your Library and UserAccount class. Especially change your “Search” method in Library so, that it will now give a array of Medium.

Hint: Maybe your member needs a new typ and also a new name.

Step 5

Now that we have a new base class, let us create some more classes that will derive from that.

Create Magazine class with the following members: - a string property with the name “ISSN” - two int properties with the names “Issuing” and “Year” - they all have a get and a private set - a constructor with four parameters: title, issn, issuing and year - a method “Search” that searches in its members with a given search query and returns true if a member match with the query

Create Video class with the following members: - a string property with the name “EAN” - it has a get and a private set - a constructor with two parameters: title and ean - a method “Search” that searches in its members with a given search query and returns true if a member match with the query

Hint: This two classes would have a good place in the same folder as the Book class. Hint: Dont forget the base constructor here too.

Step 6

Again, create documentation comments for your newly created classes, methods, fields and properties.

  1. You can find the tests for this task Here ↩

  2. You can find the solution to this task Here. ↩