You shouldn't need an enemy class. Since the enemy and player are BOTH paddles. If you really want to put the AI in a class, make Paddle a base class and inherit from it. Make a
Player:Paddle(){}
and
Enemy:Paddle(){}
Good observation, wrong conclusion.
Inheriting player and enemy from Paddle violates the spirit of the Liskov Substitution Principle (that is, neither the player nor the AI *are* a paddle) and composition (both player and enemy *have* a paddle) would be a better pattern to apply.
As a general rule, composition should be preferred over inheritance whenever inheritance is unnecessary. Here, a properly written Paddle will provide all of the interfaces necessary to control it and query it's state from the outside, so neither player nor enemy should be required to inherit from it in order to control it through overridden methods, rather they can be separate entities who control a paddle.

Find content
Male