Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
I definitely see where you are coming from, but if I'm not mistaken, your solution appears to not meet the parameters of what the homework was designed to be. Three of the methods in the base class Pet had to be abstract so that you could define the functionality. The idea, even if it is more complicated then it needs to be, is to just get us to understand how things like abstract, override and virtual work.
This does not seem to work. Correct me if I am wrong here, but your ValidChoice(Choices choice) method declaration does not permit you to pass in an int or string for the comparison. This is due to ints and strings not being assignable to the Choices enum. So I am getting an error using your method because when I try to instantiate the ValidChoices(choice) method and assign it to invalidChoice, I get a compiler error that says you cannot assign an int to type Choices.
That does look convenient, but for the sake of trying to understand the basics, I am trying to conform to the standards they asked us to complete the project with.