Classes, Abstract Classes and Virtual Methods and Overrides