English: A UML class diagram featuring two abstract classes; Room and MazeGame, as well as four concrete classes; MagicRoom and OrdinaryRoom which inherits from Room, and MagicMazeGame and OrdinaryMazeGame which inherits from the abstract class MazeGame.
The MazeGame abstract class declares an abstract method named MakeRoom which is implemented by the MagicMazeGame and OrdinaryMazeGame classes.