This week, we looked at multi-dimensional arrays. I have used these types of arrays in both C++ and Java previously. The largest I have used are two-dimensional arrays. I think anything larger than that is unreasonable, and I cannot think of an instance in which I would want to use one. Many other data structures exist that may be preferable in some of these scenarios.
Inheritance allows you to avoid reusing code when defining multiple class that may have a similar function. For example, if I wanted two versions of a class, but I wanted one to print some values to the screen and I wanted one to hide the data, I could make a child class of the one and create a print function of it, rather than create a whole new class. I have used this concept in earlier computer science courses.