NPS CS3021 final programming assignment on polymorphism